JMeter处理接口签名之BeanShell实现MD5加密

这篇具有很好参考价值的文章主要介绍了JMeter处理接口签名之BeanShell实现MD5加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目A需要给项目B提供一个接口,这个接口加密了,现在需要测试这个接口,需要怎么编写脚本呢?实现接口签名的方式有两种:BeanShell实现MD5加密和函数助手实现MD5加密,之前已经分享过了函数助手实现MD5加密,今天就来分享下BeanShell实现MD5加密。

一、接口信息

POST /api/agent-pid

json请求参数

{

"app_id":1,

"timestamp":"1667033841",

"pid_num":2,

"sign":xxxxxxxxxxxxxxxxx

}

算法:

1、将请求参数按照键名进行升序排序,需要带上时间戳

即app_id=${app_id}&pid_num=${pid_num}&timestamp=${timestamp}

2、拼接秘钥,将秘钥拼接在参数后面

即app_id=${app_id}&pid_num=${pid_num}&timestamp=${timestamp}${key}

3、将拼接后的结果取md5值

即DigestUtils.md5Hex(app_id=${app_id}&pid_num=${pid_num}&timestamp=${timestamp}${key})

二、编写JMeter脚本

结构如下:添加测试计划,添加用户自定义变量app_id,pid_num和key,添加前置处理器BeanShell,通过MD5加密,得到请求参数sign,添加线程组, 添加http请求,添加断言,添加察看结果树。

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

一)添加测试计划

右键文件--新建--测试计划

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

二)添加用户定义的变量

选中测试计划,右键--添加--配置元件--用户定义的变量

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

定义三个变量,key,请求参数app_id和pid_num

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

三)添加前置处理器BeanShell

添加前置处理器BeanShell,来定义两个变量timestamp和sign。

选中测试计划,鼠标右键--添加--前置处理器--BeanShell PreProcessor,新建成功,命名为:timestamp,另一个变量sign方法类似。

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

1、时间戳timestamp

调用System.currentTimeMillis()函数,即可获取时间戳,具体代码如下:

//获得系统的时间,单位为毫秒,转换为秒

long timestamp1 = System.currentTimeMillis()/1000;

//将timestamp转化为string类型,并复制给变量timestamp

vars.put("timestamp",timestamp1.toString());

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

2、签名sign

主要用到md5Hex函数,取MD5值,具体代码如下:

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

//将请求参数按照键名进行升序排序,需要带上时间戳

//拼接秘钥,将秘钥拼接在参数后面

String md5_str = "app_id=${app_id}&pid_num=${pid_num}&timestamp=${timestamp}${key}";

log.info("md5_str:"+ md5_str);

//将拼接后的结果取md5值

String sign = DigestUtils.md5Hex(md5_str);

vars.put("sign",sign);

log.info(sign);

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

四)添加线程组

鼠标右键测试计划,添加--Threads(Users)--线程组,命名为:test接口。

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

五)添加HTTP请求

鼠标右键线程组--添加--Sample--HTTP请求,命名为:test接口请求,填写方法、路径和请求参数的值,四个请求参数,分别为app_id,timestamp,sign,pid_num。

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

六)添加响应断言

选中HTTP请求,鼠标右键--添加--断言--响应断言,即可添加成功

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

七)添加察看结果树

选中HTTP请求,鼠标右键--添加--监听器--察看结果树,即可查看响应结果。

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

JMeter处理接口签名之BeanShell实现MD5加密,JMeter,jmeter,功能测试

这样,一个结果脚本就完成了。

我是程序员馨馨,全网ID唯一,转载请注明出处。文章来源地址https://www.toymoban.com/news/detail-634638.html

到了这里,关于JMeter处理接口签名之BeanShell实现MD5加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java使用MD5加盐对密码进行加密处理,附注册和登录加密解密处理

    在开发的时候,有一些敏感信息是不能直接通过明白直接保存到数据库的。最经典的就是密码了。如果直接把密码以明文的形式入库,不仅会泄露用户的隐私,对系统也是极其的不厉,这样做是非常危险的。 那么我们就需要对这些铭文进行加密。 现在市场是加密的方式已经

    2024年02月02日
    浏览(14)
  • postman 携带时间戳及md5加密预处理测试

    在很多接口进行测试的时候,都会需要携带时间戳进行校验,或者存在需要sign进行md5加密处理 全局参数: {{$timestamp}} 时间戳长度: 13 位 优缺点:使用方便但是不能进行参数处理 使用示例 预处理: Pre-request Script 时间戳长度:*可以自己处理位数 优缺点:可以根据需求进行

    2024年02月08日
    浏览(32)
  • C# 实现MD5加密

    日常程序开发中,涉及到敏感数据内容,通常会采取加密处理以保证数据安全,本篇文章讲述了在C#中使用MD5方法加密数据 MD5的全称是message-digest algorithm 5,MD5算法属于hash算法的一类,对消息进行运算,产生一个128位的消息摘要(32位数字字母),并且加密不可逆,相同数据

    2024年02月08日
    浏览(16)
  • MD5加密--Python实现

    MD5消息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit 字节,通常用一个32位的16进制字符串表示。 MD5加密

    2024年02月11日
    浏览(21)
  • Java 实现 MD5 加密算法

    1.1 MD5 算法介绍 MD5 消息摘要算法,英文:MD5 Message-Digest Algorithm ,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 MD5 是单向加密不可逆的,也就是常说的非对称加密,常用于用户密码的加密,这样即使密

    2024年02月09日
    浏览(18)
  • Groovy 基于Groovy实现MD5加密

    groovy 3.0.7 说明:如果在JAVA中运行,则需要修改 为 === 提示文字过少,占位行 === 提示文字过少,占位行

    2024年02月06日
    浏览(25)
  • JavaScript实现MD5加密的6种方式

    关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, b64_md5(value) 3, str_md5(value) 4, hex_hmac_md5(key, data) 5, b64_hmac_md5(key, data) 6, str_hmac_md5(key, data)   测试

    2024年02月05日
    浏览(17)
  • JavaScript实现MD5 加密的6中方式

      关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, b64_md5(value) 3, str_md5(value) 4, hex_hmac_md5(key, data) 5, b64_hmac_md5(key, data) 6, str_hmac_md5(key, data) 测试

    2024年02月14日
    浏览(11)
  • SpringBoot实现Md5对数据库数据加密

            因为开学等各种原因,导致更新的速度越来越慢,当然在此期间也进行了一些其他技术的学习,今天给大家带来的就是我们的通过MD5进行数据库加密。         MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要

    2024年02月09日
    浏览(22)
  • JMeter---BeanShell实现接口前置和后置操作

     在JMeter中,可以使用BeanShell脚本来实现接口的前置和后置操作。 下面是使用BeanShell脚本实现接口前置和后置操作的步骤: 1、在测试计划中添加一个BeanShell前置处理器或后置处理器。 右键点击需要添加前置或后置操作的接口请求,选择\\\"Add\\\" - “Pre Processors” 或 “Add” - “

    2024年02月19日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包