接口性能测试时,接口请求参数是根据一定的规则拼接后进行MD5加密后再进行传参,因此借助于python脚本实现,则可以有效提升测试效率。
一、python加密脚本
import hashlib
import random
import time
import sys
def test(UserID):
ts = str(time.time())[:-7]
NonceStr = str(ts) + str(random.randint(1, 1000))
data = "UserID=" + UserID + "&" + "NonceStr=" + NonceStr + "&NJKHII@$%"
Sign = hashlib.md5(data.encode(encoding='UTF-8')).hexdigest()
res = {'Sign': Sign, 'NonceStr': NonceStr}
print(res)
return res
test("vivid")
-
代码解析:
ts:获取时间戳,从时间戳最右边往左去掉7位数
NonceStr:拼接时间戳+1到1000的随机数值
data:拼接形参+上面的NonceStr+给出的几个字符串
Sign:调用加密函数将上面组合的data进行最后的加密
res:返回加密后的Sign+NonceStr值
test(‘vivid'):调用test方法,传入实参:'vivid' -
运行成功后:
{'Sign': 'e977872fd043fe737779e3dfab90a104', 'NonceStr': '1611568332.403'}
二、打开jmeter添加组件:OS Process Sampler
2021012117541736.png- 添加正则表达式,提取python脚本生成的两个参数,提供给接口使用。 20210121175439387.png
- 接口请求中设置参数化,读取python脚本中自动生成的参数(接口中多个参数已进行CSV文件参数化) 20210121180426868.png
- 运行jmeter脚本并查看结果。 20210121180317801.png
网友评论