Jmeter接口测试-MD5加密-请求验签

news2024/9/29 23:39:32

目录

前言:

第一部分:先准备好Jmeter

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

 第三部分:执行脚本


前言:

JMeter是一款常用的接口测试工具,对于需要进行加密验证的接口,我们可以使用MD5加密算法进行加密,并进行请求验签

第一部分:先准备好Jmeter

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

  1. Jmeter需要java运行环境,所以需要下载JDK,JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html(最好使用 JDK 8  以上的版本,上述链接下可以下载最新的 JDK 版本)

  2. 安装JDK,请参考百度教程:https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html(注意java环境变量一定要配置正确)

  3. 下载安装Jmeter,Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi。Jmeter安装流程(参考百度教程):https://jingyan.baidu.com/article/acf728fd68e7bef8e510a3cb.html(注意Jmeter5.0版本的需要要配置环境变量,且要JDK 8 及以上才行)

  4. 引入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了。

  5. 永久汉化Jmeter。找到Jmeter安装路径下的jmeter.properties:D:\apache-jmeter-5.0\apache-jmeter-5.0\bin\jmeter.properties。用编辑器打开(右键用记事本打开也可以):找到  #language=en  ,在下面添加:language=zh_CN 保存并重启Jmeter

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

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

  1. 添加一个线程组:测试计划——添加——线程(用户)——线程组

  2. 线程组下添加一个 前置处理器 BeanShell PreProcessor:线程组——添加——前置处理器——BeanShell PreProcessor(BeanShell PreProcessor 主要是用来完成加密字符串的拼接和MD5 加密)

  3. 线程组下面添加一个 HTTP信息头管理器 :线程组——添加——配置元件——HTTP信息头管理器。用于设置请求信息头里面的参数。

  4. 线程组下添加一个 HTTP请求:线程组——添加——取样器——HTTP请求。

  5. 最后添加 察看结果树 和 聚合报告  :线程组——添加——监听器—— 察看结果树 / 聚合报告察看结果树的目的是用于:查看我们的请求是否访问成功,已经请求内容和返回内容是否正确聚合报告:主要是用于统计总的请求数,平均请求时间,响应时长,Err 数,Err率等数据。

2.新建脚本的模型成功后,开始填充脚本的内容,完成脚本MD5加密功能。

  • 在前置处理器 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外部组件引用

生成时间戳,方法较多,不同公司所用的时间戳生成方法不同,这点需要询问开发具体的生成规则,以下提供几种生成规则:

生成十三位时间戳:${__time(,)}

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

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

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

  • HTTP信息头输入接口验签需要验证的所有参数:例如:token,singa等。根据具体情况传入

  • 在HTTP请求里面,添加:服务器IP,请求方法,接口路径,接口参数等值。 

 第三部分:执行脚本

1.点击:菜单栏上的绿色按钮执行,第一次新建的测试计划会提示你先保存,把已经建好的测试计划保存到任意位置就可以了

2.设置并发数量,进行压测;

3.设置好后,点击执行,进行压测,压测完成后,可以在报告里面查看压测结果。

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=78pGJgx2Fbq3Wv_MrJkBr4Me9CWufea7&authKey=PvfVee5Yu%2F%2FtpxyVtk8QSgpeOPORA2oMLGWJTDqfGCtQ%2BRMv8MY1T%2BN9UleFs9Q%2B&noverify=0&group_code=574737577

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HOOPS Exchange SDK 2023 Crack

领先的 CAD 导入和导出库 使用 HOOPS Exchange SDK 将 30 多种 CAD 文件格式导入您的应用程序以进行 CAD 数据转换,通过单个 API 对 2D 和 3D CAD 文件格式(包括 CATIA、SOLIDWORKS、 Inventor、Revit™™、Creo、NX™、Solid Edge 等)提供快…

Nvidia官方解码性能

NVIDIA VIDEO CODEC SDK | NVIDIA Developer 1080P解码性能: 720P解码性能: 详细的参见官方的链接地址,对于GPU的解码fps能力,可以作为评估参照!

【服务器远程工具】一款好用的xshell

这里写目录标题 背景Tabby简介安装使用SSHSFTPPowerShellGit 设置外观颜色快捷键窗口 插件支持总结 背景 作为一名后端开发,我们经常需要和Linux系统打交道,免不了要使用Xshell这类终端工具来进行远程管理。今天给大家推荐一款更炫酷的终端工具Tabby&…

C++核心编程——详解函数模板

纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。 💬文章目录 一.模板的基础知识①为什么有模板?②初识模板 二.函数模板①函数模板的定义②函数模板的使用③函数模板实例化1️⃣隐式实例化2️⃣显…

QAC用户使用手册

文章目录 1 QAC介绍1.1 QAC简介1.2 QAC dashboard简介 2 QAC使用(基本操作)2.1 创建QAC工程2.2 创建QAC工程2.3 添加代码到QAC工程2.4 添加代码到QAC工程2.5 上传分析报告及结果 1 QAC介绍 1.1 QAC简介 Helix QAC是Perforce公司(原PRQA公司)产品,主要用…

「Java核心技术大会 2023」——小解送书第三期

目录 共同深入探讨 Java 生态!直播预约:视频号“IT阅读排行榜” 抽奖 大会简介 人工智能在22年、23年的再次爆发让Python成为编程语言里最大的赢家;云原生的持续普及令Go、Rust等新生的语言有了进一步叫板传统技术体系的资本与底气。我们必…

Android studio项目编译进安卓源码中

最近要做一个Android 8.1 的launcher ,在Androidstudio上开发好基本功能后,移到Android源码中编译 1.在源码中创建代码目录 我开发基于展讯9820e平台,在如下目录创建好对应名字的文件夹 \vendor\sprd\platform\packages\apps\xxxLauncher创…

回收站清空了怎么恢复?3个妙招恢复数据

回收站被人为清空,被放入回收站的文件因时间过久而被电脑自动删除时,回收站里的数据清空了还能找到吗?是可以的这3个小妙招可以帮你还原回收站的数据! 妙招一:借助注册表还原回收站清空的数据 可以尝试借助注册表还原…

Bootstrap 环境安装

文章目录 Bootstrap 环境安装下载 Bootstrap 文件结构预编译的 BootstrapBootstrap 源代码 HTML 模板实例Bootstrap CDN 推荐 Bootstrap 环境安装 Bootstrap 安装是非常容易的。本章将讲解如何下载并安装 Bootstrap,讨论 Bootstrap 文件结构,并通过一个实…

常见的Jmeter参数化方式总结

目录 前言: 参数化概念 参数化方式 二、用户变量 三、CSV数据文件 四、函数助手 前言: 在进行接口性能测试时,我们通常需要针对不同的场景进行参数化操作。JMeter是一款强大的性能测试工具,它提供了多种参数化方式,方便…

Idea在JavaSE项目中配置JavaEE

新建模块(File --> new --> Module...)javase项目 选择了这个webapp的支持之后,IDEA会自动给你生成一个符合Servlet规范的webpp目录结构。 如果说我们现在需要使用servlet的和JSP 那么需要servlet和JSP的jar包 也可以选择添加库,但是…

qt udp通信

udp不分客户端和服务器,只需要使用一个类 QUdpSocket 这里写目录标题 界面设计qudpsocketthis按钮 打开按钮 发送 关闭 界面设计 接收框设置为 只读 为ui界面各个模块改名字 本低端口和目标ip框对齐,可以对目标ip 宽度设置 为一样 水平策略 qudpsocke…

OpenHarmony端云一体化应用开发快速入门练习(下)登出销户等

一、登出 前提条件:需要在AGC控制台开通认证服务。需要先在您的应用中集成认证服务SDK。 开发步骤 当用户不再使用应用,或者需要使用其他帐号登录时,需要调用AGConnectAuth.signOut登出当前用户。用户一旦被登出,端侧的用户信息和…

Vivado 下按键控制 LED 实验

目录 Vivado 下按键控制 LED 实验 1、简介 2、实验环境 3、实验任务 4、硬件设计 5、程序设计 5.1、按键控制 led 模块代码 5.2、Vivado 仿真验证 5.2.1、Testbench 模块代码如下: 5.2.2、Vivado 仿真验证 6、下载验证 6.1、添加约束文件.xdc 6.2、板上…

SPSSPRO数据分析之——CSI数据预处理、降维

目录 一、前言 二、数据准备 三、进行预处理 四、进行降维任务 五、正态性检测 六、代码功能 一、前言 SPSSPRO是一款全新的在线数据分析平台,可以用于科研数据的分析、数学建模等,对于那些不会编程或者刚进入科研的新人来说,这款工…

CDGA/CDGP——第八章 数据集成和互操作

加gzh“大数据食铁兽”, 回复“知识点” 获取《DMBOK知识梳理for CDGA/CDGP》常考知识点(第八章 数据集成与互操作) 第八章 数据集成和互操作 第八章在CDGA分值占比较少,CDGP不考核,主要考点包括:定义、…

电商数据分析方案:丰富经验护航,分析一步到位

如果做电商数据分析的每一步都从零开始,摸着石头过河,反复测试修改。一通忙活下来,成果没见多少,人力物力成本倒是节节攀升,试问又有多少企业承受得住?如果有一套一步到位的数据分析方案,是不是…

Excel根据颜色求和与计数

文章目录 一、需求二、实现方法1.代码2.创建自定义函数3.使用函数 三、参考资料 一、需求 一个Excel中有不同颜色标记的单元格,统计的时候,需要按照颜色进行统计。 人工来做肯定是不可能了,借助Excel的功能好像也没有思路,其实这…

【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeRF(LLFF格式)数据集

【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeRF(LLFF格式)数据集 提示:最近开始在【三维重建】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeRF(LLFF格式)数据集前言下…

python复习第一章

什么是 Python? Python 是一门流行的编程语言。它由 Guido van Rossum 创建,于 1991 年发布。 它用于: Web 开发(服务器端)软件开发数学系统脚本 Python 可以做什么? 可以在服务器上使用 Python 来创建…