性能测试全栈笔记:17.timestap时间戳/加密/digest签名效验函数讲解

作者: admin 分类: 性能专题 发布时间: 2021-12-23 15:37

性能测试全栈笔记

十七、timestap时间戳/加密/digest签名效验函数讲解

引导:现在大部分系统做接口加密的很多,特别是登录接口这块,做的尤为突出,如何应对这类接口的请求,需要了解时间戳的概念和相关函数的使用。

举例说明:

  • 协议:HTTP
  • IP:192.168.25.152
  • 端口:808
接口名称接口类型URL参数
需要签名验证的POST接口POST/pinter/com/userInfo{“phoneNum”:”123434″,”optCode”:”testfan”,”timestamp”:”12112121212″,”sign”:”your sign data”}

运行一下单接口:

很明显,结果有误!提示时间戳及签名有误。

下面开始设置时间戳:

1.函数助手找到time函数

设置变量名:myTimeParam(小驼峰写法)

点击生成:${__time(,myTimeParam)},出现:1640244000472

看不懂?

进入:时间戳转换工具

注意:转换的时候,后面三位去掉!

上图得知,已经转换成了我们想要的实际时间,原来,这就是时间戳。

2.接着,将原来timestap的值12112121212更改为${__time(,myTimeParam)}

3.接着再来设置sign(签名效验)

已知,为MD5加密,函数助手中寻找digest函数,并进行设置

算法摘要里不知道填写什么,可以咨询开发或相关文档

另外要注意,digest支持的加密方式:MD5/MD2/SHA等,可以通过digest旁边的帮助获得

4.最后将${__digest(MD5,123456,,,)}替换掉原来sign的值,并且将phoneNum、optCode、timestamp进行拼接

"sign":"${__digest(MD5,${userName}${optCode}${myTimeParam},,,)}"

注意:sign由什么字段拼接,由开发文档决定。

5.运行脚本,察看结果数:

6.我们再看一下请求:

入参里我加入了参数化的元素,调用了事先设置好的CSV文件

7.再通过调试取样器验证一下:

验证正确,时间戳函数介绍到这里,更多的函数知识等待大家发掘、应用。

下一章预告:Jmeter关联相关知识(重中之重)

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复