jmeter常用Beanshell腳本-創(chuàng)新互聯(lián)

整理了一批jmeter常用的beanshell腳本供大家參考!

時(shí)間戳

import?java.text.SimpleDateFormat;
import?java.util.Calendar;
import?java.util.Date;
try{
Date?date?=new?Date();?//獲取當(dāng)前時(shí)間
SimpleDateFormat?sf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");
String?nowDate?=?sf.format(date);
Calendar?cal?=?Calendar.getInstance();
cal.setTime(sf.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR,+0);?
String?orderDate?=?sf.format(cal.getTime());
cal.add(Calendar.DAY_OF_YEAR,+365);?
String?senderDate?=?sf.format(cal.getTime());
vars.put("orderDate",orderDate);?//參數(shù)可以調(diào)用
vars.put("senderDate",senderDate);?//參數(shù)可以調(diào)用
}
catch(Exception?e){
}

jmeter常用Beanshell腳本

十余年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站定制,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁制作,對成都房屋鑒定等多個(gè)行業(yè),擁有多年的網(wǎng)站運(yùn)維經(jīng)驗(yàn)。

下載文件

import?java.io.*;
byte[]?result?=?prev.getResponseData();?
String?file_name?=?"D:\\gongju\\apache-jmeter-3.2\\bin\\download\\sqlEnt_${id}.zip";?
File?file?=?new?File(file_name);?
FileOutputStream?out?=?new?FileOutputStream(file);
out.write(result);
out.close();

jmeter常用Beanshell腳本

保存響應(yīng)內(nèi)容

FileWriter?fstream?=?new?FileWriter("XXX",true);
BufferedWriter?out?=new?BufferedWriter(fstream);
out.write(vars.get("AAA")+","+?vars.get("BBB"));
out.write(System.getProperty("line.separator"));
out.close();
fstream.close();

斷言

import?java.io.UnsupportedEncodingException;
import?org.apache.jmeter.assertions.AssertionResult;
import?org.json.*;
String?str?=?prev.getResponseDataAsString();
String?result?=?"";
try?{
result?=?java.net.URLDecoder.decode(str,?"UTF-8");
}?catch?(UnsupportedEncodingException?e)?{
e.printStackTrace();
}
JSONObject?data_obj=new?JSONObject(str);
String?result1?=?data_obj.get("dockedContact").get("name").toString();
if(result1.contains("zhufc"))?{
Failure?=?true;
FailureMessage?=?"斷言成功";
log.info("斷言成功");
}else{
Failure?=?false;
FailureMessage?=?"斷言失敗";
}

連接數(shù)據(jù)庫

import?java.sql.*;
import?java.util.*;
import?java.lang.*;
import?org.apache.regexp.*;
import?org.json.*;
//一:數(shù)據(jù)庫取值
String?drive?=?"org.gjt.mm.mysql.Driver";
String?url?=?"jdbc:mysql://192.168.204.129:3306/";
String?dbName?=?"aiopms";
String?user?=?"root";
String?pass?=?"000000";
String?history?=?"";
String?response?=?"";
String?failuer?=?"";
String?query?="SELECT?projectid?From?pms_projects?Where?name?='測試項(xiàng)目'??order?by?'desc'?limit?1";
Connection?Mycon?=?null;
Statement?Mystmt?=?null;
ResultSet?Myrset?=?null;
try{
????Mycon?=?DriverManager.getConnection(url+dbName,?user,?pass);
?????
????????}???catch(SQLException?e){
?????????
????}
Mystmt?=?Mycon.createStatement();
Myrset?=?Mystmt.executeQuery(query);
while?(Myrset.next()){
????history?=?Myrset.getString(1);
????}
????Myrset.close();
????Mystmt.close();
?????
if(history?==?"")
{
????Failure?=?true;
????FailureMessage?=?"連接數(shù)據(jù)庫失敗";
}

解析jsonlist

利用beanshell獲取到j(luò)son響應(yīng),然后通過JSONObject?和JSONArray?將數(shù)組解析,遍歷數(shù)組的length之后,提取參數(shù)值

我們需要解析如下的json響應(yīng),提取出中間的Name和population

jmeter常用Beanshell腳本

//導(dǎo)入json包
import?org.json.*;
//獲取獲取請求的返回值
String?response_data?=?prev.getResponseDataAsString();?
//日志打印獲取請求的返回值
log.info(response_data);
//將String類型的返回值構(gòu)造成JSONObject對象
JSONObject?data_obj?=?new?JSONObject(response_data);
//獲取作為下一個(gè)請求post的參數(shù)值Province(兩種方式)
//String?Provincelist_str?=?data_obj.get("Province").toString();?
JSONArray?Provincelist_str?=?data_obj.getJSONArray("Province");
//log.info(Provincelist_str);
//獲取Province數(shù)組的長度
int?len?=?Provincelist_str.length();?
?
String?strlen?=?Integer.toString(len);
?
vars.put("MessageNum",strlen);
log.info(strlen);
int?i?=?0;
for(;i?<?len;++i)
{
//獲取?data[?i?]?數(shù)組對象
JSONObject?jsonTemp?=?(JSONObject)Provincelist_str.getJSONObject(i);
switch(i)
{
case?0:
//兩種提取參數(shù)的寫法
String?NameItems?=?jsonTemp.getString("Name");
//?String?NameItems?=?jsonTemp.get("Name").toString();
//?兩種打印參數(shù)的方法
//?vars.put("Name_1",?jsonTemp.getString("Name"));?
vars.put("Name_1",?NameItems);?
log.info(NameItems);
}
}

遞歸創(chuàng)建多級目錄

import?java.io.File;?
import?java.io.FileNotFoundException;?
import?java.io.FileWriter;?
import?java.io.IOException;?
import?java.io.RandomAccessFile;?
????????????StringBuffer?fileBuf=new?StringBuffer();?
????????????String?filePar?=?"D:\\\目錄1\\目錄2";
????????????File?myPath?=?new?File(?filePar?);?
????????????if?(?!myPath.exists()){
????????????????myPath.mkdirs();?
????????????????System.out.println("創(chuàng)建文件夾路徑為:"+?filePar);?
????????????}?
????????????
????????????String?filename?=?"列表.csv";
????????????try?{?
????????????????FileWriter?fw?=?new?FileWriter(filePar?+?"\\\"?+?filename,true);
???????????????
????????????????String?originalLine?=?“”+"\n";
????????????????System.out.println("***?"+?originalLine);?
????????????????fw.write(originalLine);?
????????????????fw.close();?
????????????}?catch?(IOException?e)?{?
??
????????????????e.printStackTrace();?
????????????}

常用內(nèi)置變量

1.log?打印日志,寫入信息到j(luò)meber.log文件。
?
2.SampleResult?獲取SampleResult對象,能通過這個(gè)對象獲取想要的信息。
?
3.Response?獲取Response對象,能通過這個(gè)對象獲取響應(yīng)信息。
?
4.Failure?查看接口調(diào)使用能否成功,假如返回false是成功的,true是失敗的。
?
5.FailureMessage?失敗信息,沒有設(shè)置的時(shí)候失敗信息是空的,能set這個(gè)信息。
?
6.ResponseData?獲取response?body類型是byte[]。
?
7.ResponseCode?返回接口code成功是200。
?
8.ResponseMessage?獲取msg成功是OK。
?
9.ResponseHeaders?獲取接口服務(wù)端返回的頭部信息。
?
10.RequestHeaders?獲取用戶端請求的頭部信息。
?
11.SampleLabel?獲取接口請求的名稱。
?
12.SamplerData?獲取請求的url和body。
?
13.ctx?代表上下文信息,能直接用。
?
14.vars即JMeterVariables,操作jmeter變量,這個(gè)變量實(shí)際引用了JMeter線程中的局部變量容器(本質(zhì)上是Map),常用方法:
?
a)?vars.get(String?key):從jmeter中獲得變量值;
?
b)?vars.put(String?key,String?value):數(shù)據(jù)存到j(luò)meter變量中;
?
15.prev?獲取前面的sample返回的信息,常用方法:
?
a)?prev.getResponseDataAsString():獲取響應(yīng)信息。
?
b)?prev.getResponseCode()?:獲取響應(yīng)code。<br><br>

?調(diào)用cmd文件

1

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章標(biāo)題:jmeter常用Beanshell腳本-創(chuàng)新互聯(lián)
文章路徑:http://muchs.cn/article28/dgiccp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)電子商務(wù)、ChatGPT、網(wǎng)站營銷App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)