Jmeter导入自定义jar包

在我们测试接口的过程中,可能有时需要用到第三方jar包来生成一些测试数据(如有时需要对参数的输入值使用第三方jar包进行加密操作),涉及到这种的情况,普遍做法是:手动调用jar包获得需要的值,再把这些值赋值给jmeter中的某一个参数。这样的做法是繁琐的,而jmeter有调用jar包的功能,我们可以利用这个功能实现对jar包的嵌入调用。

下面我们将编写一个简单的加密程序,然后实现对这个jar包的调用。

1、先打开eclipse,然后写一个md5加密的类,代码如下:

package util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Str2MD5 {

    //获取字符串的16位md5值
    public static String MD5_16(String sourceStr){
        String md5 = MD5_32(sourceStr).substring(8, 24);
  //    System.out.println("MD5(" + sourceStr + ",16) = " + md5);
        return md5;
    }

    //获取字符串的32位md5值
    public static String MD5_32(String sourceStr) {
        String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(sourceStr.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            result = buf.toString();
  //          System.out.println("MD5(" + sourceStr + ",32) = " + result);
        } catch (NoSuchAlgorithmException e) {
            System.out.println(e);
        }
        return result;
    }
}

2、然后导出成jar包就可以了,取名为testAPI.jar

3、给jmeter引入改jar包,将导出的jar包放入jmeter文件夹的lib/ext下

4、在测试计划一级添加该jar包

5、给一个线程组添加一个前置处理器BeanShell PreProcessor

6、在BeanShell PreProcessor下编写java代码,实现对该jar包的调用,并将加密后的内容赋值给password

(http请求—>前置处理器—>BeanShell PreProcessor)


 

import util.*;



//加密

System.out.println("----开始给密码MD5加密!------");

String passwordMD5 = Str2MD5.MD5_32("${password}");

System.out.println("md5: " + passwordMD5);

vars.put("password", passwordMD5);

System.out.println("-----密码加密结束!------");

7、将赋值后的参数password给登接口引用

8、添加“查看结果树”查看到调用情况

发布了102 篇原创文章 · 获赞 6 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/tt75281920/article/details/104117144
今日推荐