jmeter接口系列:時間戳、加密


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

  1. 添加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

https://stackoverflow.com/questions/10382929/how-to-fix-java-lang-unsupportedclassversionerror-unsupported-major-minor-versi

md5的jar下載鏈接: https://pan.baidu.com/s/1c147cCo 密碼: cbb3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM