LoadRunner腳本優化之block塊參數化迭代介紹

LoadRunner的腳本優化時,有時將發送給服務器的請求參數化時,服務器返回的內容也會和參數化的內容相對應,例如發送的請求帶有查詢key=123,則服務器也會返回含有123相關的內容。這時我們在使用檢查點檢查服務器返回的數據正確性時,通常也會用到和參數化同樣的取值來校驗。


這樣在每次迭代過程中,每次都會取不同的值,完成檢查過程。


但是如果基於實際場景設計的腳本是:在一個迭代週期內,此action需要循環多次,於是引入了block塊。將此action加入到一個block塊中,設置循環次數爲2。再次運行一下,得到這樣的結果:


可以發現:在每個iterations時,參數化的值都會更新,但是在單個iterations的多次block循環時,每次取得的參數化的值是一樣的,問題來了:如果讓每次block塊的循環也取得不一樣的值呢?

查了下資料,發現通過參數化的設置可以做到。

打開參數化設置框


其中Update value提供了三個可選擇方式:

  1. Each iteration每次迭代更新參數值。

  2. Each occurrence:每次出現此參數時,更新此參數值。

  3. Once:只取一次,一直這樣用下去。

看到這裏後,果斷使用Each occurrence方式,坐等運行大吉啦~


紅紅的提示告訴我,腳本存在錯誤,仔細看了下,發現了問題原因:

由於參數化的策略是每次出現都會重新取值,這樣在find函數和真正調用的函數中,都會調用不同的值,於是就會出現檢查的值和實際運行的值總是取的不同的情況。那這種情況應該怎麼破呢?

又要用參數化,但檢查的函數和運行的函數要用同一參數,但是不能用同一參數配置。可以用以下方法解決:

對檢查函數重新定義一個參數化變量“check”,在其參數配置中如下設置:

  1. 選擇需要運行的參數化數據表

  2. Select next row策略使用“Same line as NewParam”


重新運行了一下,發現還是會報錯:


分析了下,由於checksame line with “NewParam,而NewParam是後運行的,這樣就會導致了check總是會慢半拍。於是將這兩個變量對調了一下:check變量使用參數化並Update value=Each occurrenceNewParam變量same line with “check,重新運行了下,發現沒有錯誤了。



原文鏈接

如需轉載該篇文章,請註明來自“搜狗測試”


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章