在LoadRunner的腳本優化時,有時發送給服務器的請求參數化時,服務器返回的內容也會和參數化的內容相對應,例如發送的請求帶有查詢key=123,則服務器也會返回含有123相關的內容。這時我們在使用檢查點檢查服務器參數化返回的數據正確性時,通常也會用到和服務器同樣的參數。
![]()
![]()
這樣在每次迭代過程中,每次都會取不同的值,完成檢查過程。
![]()
但是如果基于實際場景設計的腳本是:在一個迭代周期內,此action需要循環多次,于是引入了block塊。將此action加入到一個block塊中,設置循環次數為2。再次運行一下,得到這樣的結果:
![]()
可以發現:在每個ITerations時,參數化的值都會更新,但是在單個ITerations的多次block循環時,每次取得的參數化的值是一樣的,問題來了:如果讓每次block塊的循環也取得不一樣的值呢?
查了下資料,發現通過參數化的設置可以做到。
打開參數化設置框
![]()
其中 Update value 提供了三個可選擇方式:
Each ITeration:每次迭代更新參數值。
Each occurrence:每次出現此參數時,更新此參數值。
Once:只取一次,一直這樣用下去。
看到這里后,果斷使用 Each occurrence 方式,坐等運行大吉啦~
![]()
紅紅的提示告訴我,腳本沒有跑過,仔細看了下,發現了問題原因:
由于參數化的策略是每次出現都會重新取值,這樣在 find 函數和真正調用的函數中,都會調用不同的值,于是就會出現檢查的值和實際運行的值總是取的不同的情況。
那這種情況應該怎么破呢?
又要用參數化,但檢查的函數和運行的函數要用同一參數,但是不能用同一參數配置。可以用以下方法解決:
對檢查函數重新定義一個參數化變量“check”,在其參數配置中如下設置:
選擇需要運行的參數化數據表
Select next row 策略使用“Same line as NewParam”
![]()
重新運行了一下,發現還是會報錯:
![]()
分析了下,由于 check 是 same line wITh “NewParam”,而 NewParam 是后運行的,這樣就會導致了 check 總是會慢半拍。于是將這兩個變量對調了一下:check 變量使用參數化并 Update value=Each occurrence,NewParam 變量 same line wITh “check”,重新運行了下,發現沒有錯誤了。
![]()
最后:在我的V :atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.