JMeter安裝配置
從官網下載JMeter的軟件包apache-jmeter-x.x.zip,下載完成之后解壓打開jmeter.bat即可。
說明
這里使用的jmeter版本是3.0,jdk版本是jdk1.8;目前最新版本jmeter3.3支持的是jdk1.8版本,不支持jdk1.9的版本。
jmeter打開的界面如圖所示
整個接口項目的結構示意圖如下
今天主要記錄時間戳和md5加密的方法。
如何在jmeter中獲取當前系統的時間戳呢?jmeter系統提供了方法${__time(,)}
,使用該方法可以獲取當前系統的毫秒格式的時間戳。
md5加密的實現
那么md5加密如何實現呢?
這里是引入jar包來實現md5-32位加密。
從網上copy了一份md5加密的代碼如下
package com.test;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5加密
*
* @param str
* @return
*/
public class mymd5 {
public static String md5(String str) {
if(null == str){
return null;
}
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] result = md.digest(str.getBytes("utf-8"));
return hexToString(result);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
public static String hexToString(byte[] b) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex.toLowerCase());
}
return sb.toString();
}
}
在eclipse中新建工程和包,圖示如下
說明
可以在eclipse中實現查看加密結果是否正確
導出jar包
導出jar操作如圖
將導出的jar放到Jmeter安裝目錄下的lib文件夾下
Jmeter新建測試計划,添加線程組,新建BeanShell Sampler,並寫入以下測試內容
說明
之前已經在測試計划中添加了用戶自定義變量,如圖
所以這里直接在BeanShell Sampler中直接get已經設置的用戶變量,方法是vars.get
,代碼如下
//導入md5的jar包
import com.test.mymd5;
//定義機構代碼
String code = vars.get("customerCode");
//定義時間戳
String timestamp = vars.get("timestamp");
//定義機構中的serial_number_md5,臨時會話驗證
String ytoken = vars.get("ytoken");
//定義英文下划線_ underscores
String underscores = vars.get("underscores");
//獲取創建會話中的token驗證的md5加密
String itoken = mymd5.md5(code+timestamp+ytoken);
//獲取用戶會話中的token驗證的md5加密,存儲為變量itoken
vars.put("itoken",itoken);
System.out.println(itoken);
這樣時間戳和md5加密都實現了,接下來就是在接口中使用此變量。
在創建會話認證接口操作如下:
新建一個http請求和http請求默認值,在http請求默認值basic中配置接口的服務器名稱或ip、請求的協議等參數如下圖
http請求默認值的作用就是在其他接口中,可以不用再次輸入服務器名稱或ip以及端口號等信息。
請求會話認證接口中,輸入接口的元素項以及請求的post方法,而使用用戶自定義的變量,可以使用${變量名}
直接使用該參數,如下
在測試計划中添加sampler-->Debug Sampler監聽jmeter中的變量信息,配置如圖
查看運行結果
在測試計划中添加監聽器-->查看結果樹,使用快捷鍵ctrl+R,查看運行結果,如圖
而jmeter中變量的界面展示如圖所示
以上操作即是獲取時間戳和md5加密的方法。這樣認證接口就不用每次單獨計算timestamp和md5值。
遇到的問題
md5加密導出的jar包,引入過后運行時提示Unsupported major.minor version 52.0
,如圖
究其原因,發現是jdk版本不一致造成的。解決方法如下:
1) 調整jdk版本一致:
eclipse>windows>preferences>java>compiler>compiler compliance level 1.8,如圖
修改jdk compliance版本為1.8的版本;
2) 項目右鍵>properties>java compiler>1.8
- 添加jdk的lib
然后重新打包jar文件,再次導入jmeter中,成功
備注
The reported major numbers are:
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
參考資料
第04篇 JDK版本導致Unsupported major.minor version 52.0 error
md5的jar下載鏈接: https://pan.baidu.com/s/1c147cCo 密碼: cbb3