接到上级通知,需要配合第三方供应商,对他们的合同签署流程进行一次压测。听起来很简单,但是中间涉及到的东西很多
这个第三方的签署流程大致如下 1.登录获取token 2.获取当前时间戳 3.对合同pdf进行base64转码 4.转码过的合同写到body里 5.根据token,时间戳,body,以及我们的私钥,通过算法生成一个sign签名 6.sign计算之后,body里面的base64会再一次转码 7.将token,时间戳,私钥,sign签名作为头部信息,和二次转码的body一起传参 大致如下图
1.token是动态的 2.时间戳是动态的 3.合同pdf转码之后太长,没有办法直接贴到jmeter的body里面,贴进去就彻底卡死 4.由于上面的几个参数都是动态,导致生成的sign也是动态的,随时在变 5.同一份合同只能签署一次,也就意味着如果想做压测,只能手动传不同的合同,不停地改sign
写java方法,实现以下功能 1.调接口自动获取token 2.自动获取当前时间戳 3.读取本地文件的转码body 4.通过body,时间戳,token生成sign,然后将这三组参数分列存到本地文件。如果有多份pdf文件,就生成多组。如下所示
| sign | time | body | | -------- | -------- | | 1 | 2 | 3 |
5.jmeter做参数化,并发去读取这三行参数
思路仅供参考