JMeter——異步請求性能測試


前段時間任務要求要對一種異步請求做性能測試,異步請求步驟如下:

step1: 發一個數據計算的請求,response里面返回一個jobId

step2: 帶上這個jobId,就可以實時查看這個請求返回的jobStatus, 如果jobStatus==0, 則成功返回計算結果;如果jobStatus==2,則代表job in progress;如果jobStatus==3,則代表job in failure.

 

我的思路:

1. 怎樣把step1和step2包裹起來,成為一個整體,因為這個整體花費的時間,才是整個異步請求的響應時間。

solution: 我用了一個Transaction Controller, 把這兩步構成了一個整體。它的用法可參考:http://jmeter.apache.org/usermanual/component_reference.html#Transaction_Controller

 

2. 怎樣隔一段時間就去查看一下job status, 並且根據返回的job status來判斷是否計算完成並返回計算結果了。

solution: 我在step2上包裹了一個While Controller內加一個Constant Timer, 前者控制不斷發送step2的請求直到返回計算結果,后者設定每隔多久發送一次。最后還加了一個BeanShell PostProcessor去多條件控制循環結束。

condition script for While Controller is:

${__javaScript("${flag}"=="0" && "${jobStatus}"!="0")}

 

BeanShell PostProcessor script is:

String jobStatus = vars.get("jobStatus");

log.info("jobStatus:"+jobStatus);

if(jobStatus.equals("0")){

log.info("AssetUnderManagement data returned successfully!");

vars.put("flag","1");

}

if(jobStatus.equals("3")){

log.info("AssetUnderManagement data calculate in failure!");

vars.put("flag","1");

 

 再次推薦,所有JMeter component的用法都可以查閱官網:http://jmeter.apache.org/usermanual/component_reference.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM