您好,登錄后才能下訂單哦!
業(yè)務(wù)場景:
抽獎活動,程序按比例分配獎品,測試員想模擬100次抽獎,獲取抽獎的結(jié)果,分析大致的概率
1.setUp Thread Group 前置,右擊添加 BeanShell Sampler
輸入
props.put("a",0);
props.put("b",0);
props.put("c",0);
props.put("d",0);
props.put("e",0);
props.put("f",0);
props.put("g",0);
這邊猶如一個map 存放鍵值對
這段一定要前置,否則每次運行都會將value回0
2.添加線程組-》添加http請求
http請求下添加JSON Extractor(因為我們需要從接口返回的json中獲取信息進行統(tǒng)計)
下列是我的接口返回回來的json數(shù)據(jù)
{"code":200,"msg":"0.3%加息劵","weight":1}
JSON Extractor中設(shè)置
JSONPath Expression: $.msg
names of created variables:messageYyq
3.添加BeanShell Sampler
此BeanShell Sampler事在線程組下的 會被多次執(zhí)行
代碼如下:
String value = vars.get("messageYyq");
if("飛科剃須刀".equals(value)){
int x = props.get("a")+1;
props.put("a",x);
}
if("赤霞珠干紅酒".equals(value)){
int x = props.get("b")+1;
props.put("b",x);
}
if("亞麻籽油".equals(value)){
int x = props.get("e")+1;
props.put("e",x);
}
if("30元返現(xiàn)劵".equals(value)){
int x = props.get("f")+1;
props.put("f",x);
}
if("50元京東E卡".equals(value)){
int x = props.get("g")+1;
props.put("g",x);
}
if("0.3%加息劵".equals(value)){
int x = props.get("d")+1;
props.put("d",x);
}
if("1%加息劵".equals(value)){
int x = props.get("c")+1;
props.put("c",x);
}
4.添加Debug Sampler,將jmeter properties 設(shè)置為true
最后Debug Sampler運行 結(jié)果如下:
START.YMD=20180612
TESTSTART.MS=1528853588059
a=0
b=0
beanshell.server.file=../extras/startup.bsh
c=0
classfinder.functions.contain=.functions.
classfinder.functions.notContain=.gui.
cookies=cookies
cssParser.className=org.apache.jmeter.protocol.http.parser.CssParser
cssParser.types=text/css
csvdataset.file.encoding_list=UTF-8|UTF-16|ISO-8859-15|US-ASCII
d=20
e=0
f=0
g=0
可以看出 變量次數(shù)都有輸出
當(dāng)然也可以不用Debug Sampler
在第二個BeanShell Sampler代碼最后加上
String cc = "a:"+props.get("a")+"d:"+props.get("d");
return cc;
這樣在 結(jié)果樹中的BeanShell Sampler里的響應(yīng)數(shù)據(jù)里 也能看到 更為清晰 。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。