天天看點

Jmeter統計傳回值數量

         在測試過程中遇到一個需求,一個抽獎接口,可能傳回四種抽獎結果,一二三四等獎,沒有不中獎的,對獎項設定中獎率。

要測試中獎率就要知道每個請求傳回的中獎結果,并進行累加。

     工具使用的jmeter,首先想到的是Beanshell,開始由于不知道怎麼設定全局變量,自己定義的變量每次都被重新初始化了,後來發現jmeter有屬性變量

a) props.get("key");  

b) props.put("key","value");

比如我把一等獎中獎個數初始值設為0,props.put("topone","0");

然後用正規表達式擷取服務端的傳回值,将正規表達式提取器擷取的結果做判斷,如果是一等獎那麼topone+1,然後再次儲存到props.put("topone",topone+1)

最後擷取到的props即為要擷取的值。

//運作前執行初始化,初始化後要注釋掉

props.put("code",0);

props.put("xj",0);

props.put("zj",0);

props.put("dj",0);

props.put("jsj",0);

//使用正規表達式提取傳回值

String value = vars.get("levelName");

System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

//System.out.println("zhang:"+value);

//調試變量值擷取是否正常

int x = props.get("code");

int xxj = props.get("xj");

int xdj = props.get("dj");

int xjsj = props.get("jsj");

System.out.println("x="+x);

System.out.println("xxj="+xxj);

System.out.println("xdj="+xdj);

System.out.println("xjsj="+xjsj);

//對正規表達式提取的傳回值進行判斷

if(value.equals("中吉")){

  props.put("code",x+1);

  System.out.println("======");

  }

System.out.println(props.get("code"));

if(value.equals("小吉")){

  props.put("xj",xxj+1);

  System.out.println("======");

  }

System.out.println(props.get("xj"));

if(value.equals("大吉")){

  props.put("dj",xdj+1);

  System.out.println("======");

  }

System.out.println(props.get("dj"));

if(value.equals("吉上吉")){

  props.put("jsj",xjsj+1);

  System.out.println("======");

  }

System.out.println(props.get("jsj"));

繼續閱讀