測試過程中,需要根據不同的場景來設置自己的jmeter腳本,比如:發送短信的業務就需要獲取到用戶登錄后的jsessionid,那么根據這個場景,編寫腳本就有不同的實現方式。第一種,登錄和發短信兩個接口使用關聯技術,從登錄的響應數據中提取到jsessionid,然后傳遞給發短信的接口,發短信接口在發送請求時,攜帶着這個jsessionid,就可以請求成功。第二種,先從登錄接口中獲取到用戶的jsessionid,並保存到本地,然后發送短信的接口需要用到這個jsessionid,就用csv Data Set Config參數化的方式調用.。
下面呢,我就介紹下第二種實現方法。
一、我登錄接口的用戶名也是用csv Data Set Config的方式,設置的參數化。
1、在測試計划上,點擊右鍵-》Threads(Users)-》線程組

2、在線程組上,點擊右鍵,在配置元件中選擇csv Data Set Config

3、csv Data Set Config界面的設置如圖:

4、在線程組點擊右鍵,Sampler中選擇HTTP請求,在HTTP請求中填寫登錄的接口地址,請求方法以及請求參數等。

5、在登錄接口上點擊右鍵,后置處理器中選擇正則表達式提取器,正則表達式提取的時候,要根據具體的響應數據去寫。可以再加一個Debug PostProcessor去查看,自己寫的正則表達式,是否能夠正確提取到jsessionid。

6、在登錄接口上點擊右鍵,后置處理器中選擇BeanShell PostProcessor,在BeanShell 中寫代碼實現,將正則表達式提取到的jseesionid保存到本地。

具體代碼如下:
String path = "E:\\test";// 定義一個文件夾路徑
File file = new File(path) ;
if(!file.exists()) {
file.mkdirs();
} //創建文件夾
FileWriter fstream = new FileWriter("E:\\test\\cookies.txt",true); //路徑已存在,創建文件並追加寫入數據
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("jsessionid") +"\n");
out.close();
fstream.close();
7、在線程組上點擊右鍵,監聽器中選擇查看結果樹,用來查看接口請求是否成功。
8、點擊工具欄中的啟動
,在自己設置的路徑下查看,本地文件是否生成,數據是否正確。

二、發送短信的接口實現腳本
1、添加線程組,在線程組上點擊右鍵,添加三個配置元件,分別是csv data set config,HTTP信息頭管理器,HTTP Cookie 管理器。

HTTP Cookie 管理器中的設置

2、添加發送短信的http請求,具體根據接口的路徑、請求方式以及請求參數等進行設置。
3、添加監聽器,查看結果樹,檢查請求是否正確,短信是否成功發送

短信發送成功。
