前言:最近,我遇到一些测试接口必须传入经过SHA512加密后的sign签名,并且签名有1小时时间限制,即签名不是一成不变超1小时就会过期,这导致在测试过程中就得频繁手工去更新签名。其实Jmeter是有提供函数去进行自动转换的,以下详解

SHA512加密,可以去网上搜索SHA512在线转换

1、已知,接口请求必须传入4个参数tenantCode、timestamp、nonce、sign

{
"tenantCode":"",
"timestamp":"",
"nonce":"",
"sign":""
}

其中sign是经过SHA512加密的签名,计算规则如下【其中appSecret=573e182924f8d40fd4566989ace22729e8d4a1cb】:

  • 按照顺序tenantCode${tenantCode}nonce${nonce}timestamp${timestamp}${appSecret}拼接成一串字符串
  • 对这串字符串进行SHA512加密
  • 对加密后的字符串转大写,就得到sign

2、例子:

{
"tenantCode":"jkdsa",
"timestamp":"1722938712",
"nonce":"3754",
"sign":"5F61CFD4AE4FD799C644659F14B81ABF510941F6EDA4C16349018E6A3872281A7794A43A3CF3E7734B7AD1E553ADA562AAA5DBA90188CF22A8781CE8BAF7C158"
}

以下是手工根据规则计算sign的过程

  • 拼接字符串为:tenantCodejkdsanonce3754timestamp1722938712573e182924f8d40fd4566989ace22729e8d4a1cb
  • 进行SHA512加密后为:tenantCodejkdsanonce3754timestamp1722938712573e182924f8d40fd4566989ace22729e8d4a1cb
  • 转大写后为:5F61CFD4AE4FD799C644659F14B81ABF510941F6EDA4C16349018E6A3872281A7794A43A3CF3E7734B7AD1E553ADA562AAA5DBA90188CF22A8781CE8BAF7C158

3、由于sign签名是有1小时时间限制的,测试接口过程中为了减少手工频繁去更新签名,我用了Jmeter的函数去自动转换,用到V函数(用于执行变量名、嵌套函数)、digest函数(用于加密)、changeCase函数(用于字符转换大小写)

{
"tenantCode":"${tenantCode}",
"timestamp":"${timestamp}",
"nonce":"${nonce}",
"sign":"${__changeCase(${__digest(SHA-512,${__V(tenantCode${tenantCode}nonce${nonce}timestamp${timestamp}${appSecret})},,,)},,)}"
}

接口请求参数

Jmeter SHA512接口加密测试的更多相关文章

  1. jmeter APP接口压力测试

    第一步:获取开发文档,了解接口地址和参数名 第二步:jmeter中添加需要测试的接口 a.设计APP的接口框架: b.http请求默认值设置如下: c.接口中应需要用到sign字段,加密字符串与时间戳 ...

  2. Apache JMeter 做接口并发测试

    获知来源:查找如何使用Postman进行接口并发测试时,在StackOverflow上看到,说postman只能做串行测试,而且postman并不是被设计做这种测试的:而jmeter就是为了测试而开发 ...

  3. 【转】用Jmeter进行接口压力测试的步骤

    1.双击jmeter.bat 2.右键点击测试规划à添加àThreadsà线程组,此时在测试规划下边显露出来线程组选项.点击该选项,显露出来线程组界面.参变量线程数表达若干个烦请,参变量Ramp-Up ...

  4. JMeter进入接口压力测试

    关键字: Jmeter.单接口.压力测试.插件监听.服务器端 摘要: 使用Jmeter对单个接口进行压力测试:监听并发量对接口响应时间.服务器资源占量.Jmeter本身只能获取到Tomcat的状态,所 ...

  5. Linxu下JMeter进行接口压力测试

    ****************************************************************************** 本文主要介绍Jmeter脚本如何在Linx ...

  6. Jmeter进行接口流程测试

    Jmeter进行简单的流程测试 此次完成的流程:添加文章-删除文章 总的如下: 一.测试计划 用户定义的变量中,我定义了3个变量: 二.HTTP cookie管理器 填写要添加的cookie 三.JD ...

  7. jmeter处理接口加密和解密

    https://www.liangzl.com/get-article-detail-39672.html https://www.cnblogs.com/artoftest/p/7277996.ht ...

  8. 【jmeter】接口稳定性测试

    1.创建进行测试的脚本 2.场景设置 线程组设置并发用户数30 在启动1s,30并发用户全部启动 循环设置为永远 采用调度器:有两种工作方式 1.设置启动和结束时间 2.设置持续时间,我设置的是60s ...

  9. Jmeter 使用实践 - 接口 diff 测试

    大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmeter 入门门槛较低,安装也比较方便,根据自 ...

  10. JMeter做http接口压力测试

    测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做压力测试的时候就是混合场景,需要多个 ...

随机推荐

  1. re.search()用法详解

    re.search() 是 Python 的正则表达式库 re 中的一个方法,用于在字符串中搜索与正则表达式模式匹配的第一个位置,并返回一个匹配对象.如果没有找到匹配项,则返回 None. 以下是 r ...

  2. Jenkins构建项目遇到的问题总结

    4.2.1  在Windows下,Jenkins运行python项目 https://www.jianshu.com/p/f6edbaaa8a0d 4.2.2  配置不同类型的项目的操作步骤 http ...

  3. Spring之webMvc异常处理

    异常处理可以前端处理,也可以后端处理. 从稳妥的角度出发,两边都应该进行处理. 本文专门阐述如何在服务端进行http请求异常处理. 一.常见的异常类型 当我们做http请求的时候,会有各种各样的可能错 ...

  4. STM32 CubeMX 学习:有关说明

    背景 STM32 是我以前学过的,而很久没有整理过的.因为之前学习的时间比较早,再加上各种资料要么不成熟,要么不齐全:再加上自己一开始没有比较完善的学习经验:以至于我的学习并不扎实. 趁着 STM 的 ...

  5. 3568F-Docker容器部署方法说明

                 

  6. 工控必备!NXP i.MX 8M Mini开发板规格书资料分享,高性能低功耗!

    1 核心板简介 创龙科技SOM-TLIMX8-B是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高端工业级核心板,A ...

  7. python3 中的装饰器总结

    前言 python3 中有很多好用的装饰器,本编文章作为个人笔记使用,随时更新. 正文 1. @dataclass 内容来源:chatgpt3.5 @dataclass是一个装饰器,用于给类提供自动生 ...

  8. 基础篇:Stable Diffusion 基础原理详述

    [基础篇]Stable Diffusion 基础原理详述 前言 我认为学习 ComfyUI 应该先从理论学起. 与传统绘图工具(如 Photoshop 或 Figma)相比,AI 绘图工具有着显著不同 ...

  9. 请解释一下 JavaScript 的同源策略?

    概念:同源策略是客户端脚本(尤其是Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载.这里的同源策略指的是:  协议,域名,端口 相同,同源策略是一种安全协议.指一 ...

  10. 基于JQ使用原生js构造一个自动回复随机消息的机器人

    某些业务会使用到页面里存在一个机器人,类似于假客服一样,可以回复游客的问题. 那么如何自己写一个自动回复消息的机器人呢? 源码献上 /** * 基于jq的自动对话机器人 * @param {Objec ...