vlambda博客
学习文章列表

怎样进行Jmeter接口测试里的MD5加密?

  


第一部分:先准备好Jmeter


  1.在开始编写脚本之前,先要确保你的Jmeter能够正常运行。 若你还没有安装Jmeter,可参考以下方法:
  A.Jmeter需要java运行环境,所以需要下载JDK,

https://www.oracle.com/technetwork/java/javase/downloads/index.html

  (最好使用 JDK 8  以上的版本,上述链接下可以下载最新的 JDK 版本)
  B.安装JDK,请参考百度教程:

https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

  注意java环境变量一定要配置正确
  C.下载安装Jmeter
   Jmeter下载地址:

http://jmeter.apache.org/download_jmeter.cgi

  Jmeter安装流程(参考百度教程):

https://jingyan.baidu.com/article/acf728fd68e7bef8e510a3cb.html

   注意Jmeter5.0版本的需要要配置环境变量,且要JDK 8 及以上才行
  D.引入MD5加密所需要的jar包。 该jar包的名字是: commons-codec-1.9.jar,
  Jmeter本身就有MD5加密的功能,但是需要该jar包,可以查看Jmeter安装路径下的lib文件夹在有没有这个jar包:

D:\apache-jmeter-5.0\apache-jmeter-5.0\lib

  如果没有的话,网上下载一个放到lib文件夹下就OK了。
  E.永久汉化Jmeter。
  找到Jmeter安装路径下的jmeter.properties:

D:\apache-jmeter-5.0\apache-jmeter-5.0\bin\jmeter.properties

  用编辑器打开(右键用记事本打开也可以): 找到  #language=en  ,在下面添加: language=zh_CN 保存并重启Jmeter

怎样进行Jmeter接口测试里的MD5加密?



第二部分:编写MD5加密-请求验签的脚本

  

 怎样进行Jmeter接口测试里的MD5加密? 

1.编写该脚本需要新建的东西如下:

  A.添加一个线程组: 测试计划——添加——线程(用户)——线程组
怎样进行Jmeter接口测试里的MD5加密?
  B.线程组下添加一个 前置处理器 BeanShell PreProcessor: 线程组——添加——前置处理器——BeanShell PreProcessor
  (BeanShell PreProcessor 主要是用来完成加密字符串的拼接和MD5 加密) 怎样进行Jmeter接口测试里的MD5加密?
  C.线程组下面添加一个 HTTP信息头管理器 : 线程组——添加——配置元件——HTTP信息头管理器。
  用于设置请求信息头里面的参数。
怎样进行Jmeter接口测试里的MD5加密?
  D.线程组下添加一个 HTTP请求: 线程组——添加——取样器——HTTP请求。
怎样进行Jmeter接口测试里的MD5加密?
  E.最后添加 察看结果树 和 聚合报告  : 线程组——添加——监听器—— 察看结果树 / 聚合报告
  察看结果树的目的是用于: 查看我们的请求是否访问成功,已经请求内容和返回内容是否正确
  聚合报告: 主要是用于统计总的请求数,平均请求时间,响应时长,Err 数,Err率等数据。
怎样进行Jmeter接口测试里的MD5加密?
  2.新建脚本的模型成功后,开始填充脚本的内容,完成脚本MD5加密功能。
  A.在前置处理器 BeanShell PreProcessor添加如下内容:
  Jmeter 5 自带 org.apache.commons.codec.digest  jar,所以只需要导入就可以了。
  字符串的顺序拼接规则是: 按照参数的首字母,对参数进行A-Z的顺序进行排序,并拼接,可以参见图中参数的排序规则。
  字符相互之间连接类似:

appVersion=V1.0.0&clientType=XXX&productId=XXX&source=XXX,注:不同公司的拼接规则不同,需询问开发具体的拼接规则

// 导入MD5加密需要用到的jar包。

import org.apache.commons.codec.digest.DigestUtils;

// 声明你需要拼接的字符串

String requestTime = "${__time(,)}"; //生成时间戳

String appVersion ="XXX";

String clientType ="XXX";

String productId ="XXX";

String source ="XXX";

//拼接需要加密的字符串

String str = "appVersion="+appVersion+"&clientType="+clientType+"&productId="+productId +"&requestTime="+requestTime+"&source="+source+"istarkid2018";

// 加密已拼接的字符串

String sign = DigestUtils.md5Hex(str);

vars.put("signStr",sign.toString()); //把生成的signStr提供给beanshell外部组件引用

vars.put("requestTime",requestTime.toString()); //把生成的时间戳提供给beanshell外部组件引用

vars.put("appVersion",appVersion.toString()); //把生成的版本号提供给beanshell外部组件引用

vars.put("clientType",clientType.toString()); //把生成的clientType提供给beanshell外部组件引用

怎样进行Jmeter接口测试里的MD5加密?
  生成时间戳,方法较多,不同公司所用的时间戳生成方法不同,这点需要询问开发具体的生成规则,以下提供几种生成规则:
  • 生成十三位时间戳:${__time(,)}

  • 生成十位时间戳:${__time(/1000,)}

  • 生成当前日期,精确到天时间戳:${__time(yyyy-MM-dd,)}

  • 生成当前日期,精确到秒时间戳:${__time(YMDHMS,)}

怎样进行Jmeter接口测试里的MD5加密?
  B.HTTP信息头输入接口验签需要验证的所有参数: 例如:token,singa等。 根据具体情况传入
怎样进行Jmeter接口测试里的MD5加密?
  C.在HTTP请求里面,添加: 服务器IP,请求方法,接口路径,接口参数等值。
怎样进行Jmeter接口测试里的MD5加密?



第三部分:执行脚本

  

  1.点击: 菜单栏上的绿色按钮执行,第一次新建的测试计划会提示你先保存,把已经建好的测试计划保存到任意位置就可以了
怎样进行Jmeter接口测试里的MD5加密?
  2.设置并发数量,进行压测;
怎样进行Jmeter接口测试里的MD5加密?
  3.设置好后,点击执行,进行压测,压测完成后,可以在报告里面查看压测结果。

怎样进行Jmeter接口测试里的MD5加密?

怎样进行Jmeter接口测试里的MD5加密?

  以上并是一个加了MD5和验签的脚本的具体流程,若有错误的地方,请大家多多指点~





怎样进行Jmeter接口测试里的MD5加密?


怎样进行Jmeter接口测试里的MD5加密?

原文链接:

https://www.cnblogs.com/haoBo956/p/10221156.html

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除

推荐阅读

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读

“阅读原文”一起来充电吧!