Jmeter接口測試-MD5加密-請求驗籤(完整流程)

第一部分:先準備好Jmeterhtml

1.在開始編寫腳本以前,先要確保你的Jmeter可以正常運行。若你尚未安裝Jmeter,可參考如下方法:java

 

A.Jmeter須要java運行環境,因此須要下載JDK,JDK下載地址:https://www.oracle.com/technetwork/java/javase/downloads/index.htmlshell

(最好使用 JDK 8  以上的版本,上述連接下能夠下載最新的 JDK 版本)apache

 

B.安裝JDK,請參考百度教程:https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html服務器

(注意java環境變量必定要配置正確)併發

 

C.下載安裝Jmeteroracle

Jmeter下載地址:http://jmeter.apache.org/download_jmeter.cgiapp

Jmeter安裝流程(參考百度教程):https://jingyan.baidu.com/article/acf728fd68e7bef8e510a3cb.html編輯器

(注意Jmeter5.0版本的須要要配置環境變量,且要JDK 8 及以上才行)測試

 

D.引入MD5加密所須要的jar包。該jar包的名字是:commons-codec-1.9.jar

Jmeter自己就有MD5加密的功能,可是須要該jar包,能夠查看Jmeter安裝路徑下的lib文件夾在有沒有這個jar包:D:\apache-jmeter-5.0\apache-jmeter-5.0\lib

若是沒有的話,網上下載一個放到lib文件夾下就OK了。

 

E.永久漢化Jmeter。

找到Jmeter安裝路徑下的jmeter.properties:D:\apache-jmeter-5.0\apache-jmeter-5.0\bin\jmeter.properties

用編輯器打開(右鍵用記事本打開也能夠):找到  #language=en  ,在下面添加:language=zh_CN 保存並重啓Jmeter

 

第二部分:編寫MD5加密-請求驗籤的腳本 

 

1.編寫該腳本須要新建的東西以下:

 

A.添加一個線程組:測試計劃——添加——線程(用戶)——線程組

 

B.線程組下添加一個 前置處理器 BeanShell PreProcessor:線程組——添加——前置處理器——BeanShell PreProcessor

BeanShell PreProcessor 主要是用來完成加密字符串的拼接和MD5 加密

 

 

C.線程組下面添加一個 HTTP信息頭管理器 :線程組——添加——配置元件——HTTP信息頭管理器。

用於設置請求信息頭裏面的參數。

 

D.線程組下添加一個 HTTP請求:線程組——添加——取樣器——HTTP請求。

 

E.最後添加 察看結果樹 和 聚合報告  :線程組——添加——監聽器—— 察看結果樹 / 聚合報告

察看結果樹的目的是用於:查看咱們的請求是否訪問成功,已經請求內容和返回內容是否正確

聚合報告:主要是用於統計總的請求數,平均請求時間,響應時長,Err 數,Err率等數據。

 

 

2.新建腳本的模型成功後,開始填充腳本的內容,完成腳本MD5加密功能。

 

A.在前置處理器 BeanShell PreProcessor添加以下內容:

 (Jmeter 5 自帶 org.apache.commons.codec.digest  jar,因此只須要導入就能夠了)  

(字符串的順序拼接規則是:按照參數的首字母,對參數進行A-Z的順序進行排序,並拼接,能夠參見圖中參數的排序規則)

(字符相互之間鏈接相似:appVersion=V1.0.0&clientType=XXX&productId=XXX&source=XXX,注:不一樣公司的拼接規則不一樣,需詢問開發具體的拼接規則)

// 導入MD5加密須要用到的jar包。

import org.apache.commons.codec.digest.DigestUtils;

// 聲明你須要拼接的字符串

String requestTime = "${__time(,)}"; //生成時間戳

String appVersion ="XXX";

String clientType ="XXX";

String productId ="XXX";

String source ="XXX";

//拼接須要加密的字符串

String str = "appVersion="+appVersion+"&clientType="+clientType+"&productId="+productId +"&requestTime="+requestTime+"&source="+source+"istarkid2018";

// 加密已拼接的字符串

String sign = DigestUtils.md5Hex(str);

vars.put("signStr",sign.toString()); //把生成的signStr提供給beanshell外部組件引用

vars.put("requestTime",requestTime.toString()); //把生成的時間戳提供給beanshell外部組件引用

vars.put("appVersion",appVersion.toString()); //把生成的版本號提供給beanshell外部組件引用

vars.put("clientType",clientType.toString()); //把生成的clientType提供給beanshell外部組件引用

 

生成時間戳,方法較多,不一樣公司所用的時間戳生成方法不一樣,這點須要詢問開發具體的生成規則,如下提供幾種生成規則:

生成十三位時間戳:${__time(,)}

生成十位時間戳:${__time(/1000,)}

生成當前日期,精確到天時間戳:${__time(yyyy-MM-dd,)}

生成當前日期,精確到秒時間戳:${__time(YMDHMS,)}

 

 

B.HTTP信息頭輸入接口驗籤須要驗證的全部參數:例如:token,singa等。根據具體狀況傳入

 

C.在HTTP請求裏面,添加:服務器IP,請求方法,接口路徑,接口參數等值。 

 

 第三部分:執行腳本

 

1.點擊:菜單欄上的綠色按鈕執行,第一次新建的測試計劃會提示你先保存,把已經建好的測試計劃保存到任意位置就能夠了

 

2.設置併發數量,進行壓測;

 

3.設置好後,點擊執行,進行壓測,壓測完成後,能夠在報告裏面查看壓測結果。

 以上並是一個加了MD5和驗籤的腳本的具體流程,如有錯誤的地方,請你們多多指點~

原文出處:https://www.cnblogs.com/haoBo956/p/10221156.html

相關文章
相關標籤/搜索