使用BeanShell寫入內(nèi)容到文件
-
使用BeanShell寫入內(nèi)容到文件
- 一、前言
- 二、提取
- 三、寫入
一、前言
? 在我們?nèi)粘9ぷ髦?,可能?huì)遇到需要將請(qǐng)求返回的數(shù)據(jù)寫入到文件中。在我們使用JMeter進(jìn)行性能測(cè)試時(shí),就經(jīng)常能夠遇到這種情況。要想達(dá)到這種目的,我們一般采取BeanShell后置處理器來(lái)將內(nèi)容寫入到文件。
二、提取
? 在目前大多數(shù)的性能測(cè)試中,都是以JSON形式返回結(jié)果。因此我們這邊以JSON提取器為例進(jìn)行提取。
先來(lái)介紹下JSON提取器吧
- Main sample and sub-samples:匹配范圍包括當(dāng)前父取樣器并覆蓋子取樣器
- Main sample only:匹配范圍是當(dāng)前父取樣器(最常用的一種情況)
- Sub-samples only:僅匹配子取樣器
- JMeter Variable Name to use:支持對(duì) Jemter變量值進(jìn)行匹配
- Names of created variables:變量名
- JSON Path expressions:我們需要提取的JSON值對(duì)應(yīng)位置
- Match No.:0 代表隨機(jī)取值,n取第幾個(gè)匹配值,-1匹配所有
- Compute concatenation var:如果找到許多結(jié)果,則插件將使用’,‘分隔符將它們連接起來(lái),并將其存儲(chǔ)在名為 _ALL的var中
- Default Value:如果參數(shù)沒(méi)有取得到值,那默認(rèn)給一個(gè)值讓它取
三、寫入
? 到了這里就要開(kāi)始寫腳本了哦,這里我們直接上代碼,根據(jù)提取的數(shù)據(jù)不同,我們的腳本也不同(這里就比較考驗(yàn)大家的思維了),在這里我們有一點(diǎn)需要注意,JMeter腳本在執(zhí)行時(shí),會(huì)先檢查csv文件是否存在,不存在會(huì)報(bào)錯(cuò),所以需要先手動(dòng)創(chuàng)建一個(gè)文件在目錄下先,內(nèi)容可以為空
import java.io.*;
FileWriter fstream = new FileWriter("E:\\stuId2.csv",true); // true表示追加模式
BufferedWriter out=new BufferedWriter(fstream);
var num=vars.get("stuId_matchNr"); // 獲取JSON提取器中提取的數(shù)據(jù)
for(int i=1;i<=(Integer.parseInt(num));i++){
log.info(vars.get("stuId_"+i));
out.write(vars.get("stuId_"+i)+"\n"); // 寫入數(shù)據(jù)到csv中并換行
}
out.close();
fstream.close();
這樣就提取到了我們需要的數(shù)據(jù)了,進(jìn)而可以將數(shù)據(jù)運(yùn)用到我們的待測(cè)腳本中進(jìn)行參數(shù)啊
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-664188.html
以上就是這節(jié)的全部?jī)?nèi)容,如有錯(cuò)誤,還請(qǐng)各位指正!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-664188.html
到了這里,關(guān)于【JMeter】使用BeanShell寫入內(nèi)容到文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!