jmeter加密接口测试(实例详细)

文章目录

  • 一、编写一个简单的加密实例
  • 二、导出加密、解密方法jar包
  • 二、加密jar包导入到jemter中
  • 三、BeanShell PreProcessor加密插件中代码的编写
    • 1.加密插件(http请求>前置处理器>BeanShell PreProcessor)
    • 2.发送请求
  • 四、把加密数据进行解密。
    • 1.解密插件

一、编写一个简单的加密实例

具体的加密方法可以问开发要,这里写一个小例子。
jmeter加密接口测试(实例详细)_第1张图片

  • 输入入参之后,在入参的后面拼接上“test”。
  • 然后把该方法导出成jar包。
package com.simple.secret;

public class encryption {
    public static void main(String[] args) {
        encryption e = new encryption();
        String temp = e.add("name");
        System.out.println(temp);
    }
    public String add(String i){
        String j = i+ "test";
        return j;
    }

}

二、导出加密、解密方法jar包

使用工具是IntelliJ IDEA,根据开发给的加密解密代码导成jar包,供后面导入jmeter使用。
1.第一步(加密方法要有一个主方法。自己先加密、解密调试成功)jmeter加密接口测试(实例详细)_第2张图片

2.第二步:jmeter加密接口测试(实例详细)_第3张图片

3.第三步:jmeter加密接口测试(实例详细)_第4张图片
4.第四步:点击okjmeter加密接口测试(实例详细)_第5张图片
5.第五步:
jmeter加密接口测试(实例详细)_第6张图片

6.导出jar包方法:
jmeter加密接口测试(实例详细)_第7张图片

jmeter加密接口测试(实例详细)_第8张图片
生成完成后,jar包存放路径为项目路径下D:\example\out\artifacts\example_jar\example.jar

jmeter加密接口测试(实例详细)_第9张图片

二、加密jar包导入到jemter中

  • 导入后,记得保存然后重启jmeter。D:\example\out\artifacts\example_jar\example.jar
    jmeter加密接口测试(实例详细)_第10张图片

三、BeanShell PreProcessor加密插件中代码的编写

1.加密插件(http请求>前置处理器>BeanShell PreProcessor)

jmeter加密接口测试(实例详细)_第11张图片
插件内脚本编写和在java编译器中差不多,把参数经过加密方法,加密后取出来就可以了。
jmeter加密接口测试(实例详细)_第12张图片

import com.simple.secret.encryption;
encryption e = new encryption();
String name = e.add("testOne");			//入参
log.info(name);//打印日志

vars.put("parameter",name);//需要使用该命令,把加密后的参数放到`messageBody`中,供发起请求后使用。

2.发送请求

jmeter加密接口测试(实例详细)_第13张图片
查看结果进行验证,
String name = e.add("testOne"); //入参
可以看到入参是“testOne”,请求里面的变成了“testOnetest”,说明导出的代码生效了,完成了加密。ip地址什么的我是随便填写的,这里为了看请求参数有没有发生变更。
jmeter加密接口测试(实例详细)_第14张图片

四、把加密数据进行解密。

1.解密插件

jmeter加密接口测试(实例详细)_第15张图片
解密插件的使用。就是把返回到的加密数据进行解密。然后对解密出来的数据进行再次使用,作为下次请求的入参。

  • 接收返回的加密数据使用到了正则表达式,截取后存放数据的变量如mb
  • 在解密插件中,使用String mess = vars.get("mb");命令得到mb变量,然后进行解密。
  • 对解密出来的输出进行抛出,供请求使用vars.put("policyNO",mess);

以下是一些随机数的使用。,不需要特定参数时,可以不用参数化方式获得入参,随机数更为快捷。

  • 对于一些参数化的数据,同样使用String mess = vars.get("mb"); vars.get 命令获取到变量值。

String timeStamp =("\""+${__time(/1000,)}+"\"");
vars.put("timeStamp",timeStamp);

UUID uuid = UUID.randomUUID();
String uuId = ("\""+uuid+"\"");
vars.put("uuId",uuId);

String phone = "130"+${__Random(10000000,99999999,)};		//手机号

String cardNo = "card"+${__Random(1,99999999,)};		//护照号码

你可能感兴趣的:(jmeter加密接口测试)