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);