jmeter调用自己打javaweb maven项目的jar包
1 打包jar包
1.1 创建 javaweb maven 项目
通过md5加密签名得到 sign 值,前台接口信息头需要此参数
pom文件
<?xml version="1.0" encoding="UTF-8"?>xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.hjh JmeterSignUtilHjh 1.0-SNAPSHOT jar JmeterSignUtilHjh Maven Webapp http://www.example.com UTF-8 1.8 1.8 junit junit 4.11 test com.alibaba fastjson 1.2.75 org.apache.shiro shiro-all 1.7.1 pom javax.servlet javax.servlet-api 3.1.0 JmeterSignUtilHjh maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
新建一个java文件夹
工具类代码
package com.util; import org.apache.shiro.crypto.hash.Md5Hash; import java.util.*; public class JmeterSignUtilHjh { public static void main(String[] args) { Map< String, Object > signMap = new HashMap<>(); signMap.put("parameter1" , "str1"); signMap.put("parameter2" , "str2"); System.out.println("str:" + JmeterSignUtilHjh.getSignStr(signMap,"str3")); } public static String getSignStr(Map < String, Object > paramValues , String secret) { try { StringBuilder sb = new StringBuilder(); List< String > paramNames = new ArrayList<>(); paramNames.addAll(paramValues.keySet()); Collections.sort(paramNames); for (String paramName : paramNames) { sb.append(paramName).append(paramValues.get(paramName)); } sb.append(secret); return MD5Digest(sb.toString()); } catch (Exception e) { throw new RuntimeException("加密签名计算异常!" , e); } } /** * md5工具类 */ private static String MD5Digest(String src){ return new Md5Hash(src).toString(); } }
1.2 打包写好的代码
把jar包放到\apache-jmeter-5.2.1\lib\ext 里面,重启jmeter
2 jmeter 引入jar包
要运行 jmeter2.bat
import com.util.JmeterSignUtilHjh; Map signMap = new HashMap (); comp = vars.get("compname"); limit = vars.get("limit"); es=vars.get("es"); signMap.put("companyName" , comp); signMap.put("limit" , limit); signMap.put("useES" , es); //sign=SignUtils.getSignStr(signMap,null); sign=JmeterSignUtilHjh.getSignStr(signMap,"fe716cbb-a990-40d4-b7c7-7b9db338c6c8"); vars.put("sign",sign); System.out.println("companyName:" + comp); System.out.println("limit:" + limit); System.out.println("es:" + es); System.out.println("sign:" + sign);