目录
八、添加Beanshell后置处理程序,将HTTP的响应信息进行解密
一、加解密的jar包基本介绍及引入

1、加密接口Rsa2Util.encryptTest(报文)
2、解密接口Rsa2Util.decrypt(报文, "UTF-8",密钥)
3、密钥 Shangsi
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDjQ1ficXeKwBPrUZLgk+0M7+77lFQa9o50eCvtKR0hgMt0LtoYgTUR1nrXs4VX13EWgtY9d3um1P55s/nPWVMjTQtP8lBwEuQUPrHL62fNR7Ov3+aPN7XOjL9KV9SspCCHMD3i4r1fsCYm9wLVauy2Qae7nzR13pf9Pe2wq+GPtyA/NWnp+M+wFCPcBhlYs0YEU7hm+9oZR0ySwAdTTwiDKVLi/PqorDGjUmhZXBBiJ1Pv0OCeC8J98GOUrqUhdbfzAnBimifrJGL6wQopkWy6BZFF5hDjLuVORPoZU3WEbc6dX84Rrgb9nyafyS5WbjUuxO2v4ZoGHjtsuuLJBHqNAgMBAAECggEBANJkhfgdE45gRBCWdGN0jwBrH9PIfhR4LWml1wS4Cz/4/GGS/lWxSHA7H36Rs+CekxNEDRLaip7okK4a8CoFh/ImYVKiAdW/p2cWo4Mla/Ofbbpkjg4IhUezBWTN6xXo3DRLdP+W6bqsWKW6B+WMF5ijL6WCvg5hBFRuAJ6OgUOJhqW/0Ydn5qdxSyP8VeB4UMeXwq2BZgGJnTlpO2WRoq5ZIa1Ia5tPUdaWHo9iNQpVu7q+XSBCVkMClGdF6RN9Bw7S1V5NuYgPPASl+gT69RYR2GCLYhXpPetbnLrfUMeEmLpmgITqqQdQELtAl+H9Tc6eBezPIgMqFBqI4waeYAECgYEA9ViLFfBqiCuj2M2uea7evGn/r/87Pdoa31j9wzZS1cX5yR5BaIL2SIAPUe9R9Mdx9maxMrW93yOhPYWq2/jG/6d
4、将加解密jar包放入Jmeter的\lib\ext路径中

二、添加Http请求默认值
测试计划右键——添加——配置元件——HTTP请求默认值

设置请求的服务器、地址、端口号、协议,后续同一地址端口号无需再设置
三、添加HTTP信息头管理器
将报文头添加到HTTP信息头管理中
测试计划右键——添加——配置元件——HTTP信息头管理器


四、添加CSV数据文件设置,参数化数据
测试计划右键——添加——配置元件——CSV数据文件设置

目前本请求报文,只需将deviceId进行参数化,其他无需
五、添加加密的Beanshell预处理程序
测试计划右键——添加——前置处理器——Beanshell预处理程序

编写加解密脚本

六、添加线程组,发送接口请求
测试计划右键——添加——线程——线程组

设置循环次数

七、 添加HTTP请求,发送请求报文
线程组右键——添加——取样器——HTTP请求

录入接口的请求类型和路径,以及加密程序存储的加密变量

八、添加Beanshell后置处理程序,将HTTP的响应信息进行解密
线程组右键——添加——后置处理器——Beanshell后置处理程序

录入加解密脚本


九、添加调试取样器,查看取样结果以及断言
线程组右键——添加——取样器——调试取样器


十、添加察看结果树,查看请求以及调试取样器结果
线程组右键——添加——监听器——察看结果树

运行查看结果

十一、添加聚合报告,查看性能指标
线程组右键——添加——监听器——聚合报告

十二、添加断言
断言的请求邮件——添加——断言——响应断言

录入断言文本,以及失败打印的消息

十三、断言结果
断言的取样器右键——添加——监听器——断言结果

运行之后查看断言结果
十四、遇见的问题
1、无法识别加密类
检查JDK配置以及版本,目前我试用的是JDK1.8,Jmeter5.4.1
2、取样器、调试取样器均可添加断言
3、Jmx的层级关系

十五、Beanshell的常用变量
附、Bean Shell常用内置变量
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);
ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code