jmeter如何使用Python脚本

在使用jmeter过程中,例如登录接口中signature字段是多个字符串拼接后md5加密所得,用jmeter自带的函数操作比较麻烦,我这里选择使用jmeter去加载本人更加熟悉的Python脚本,来解决此问题。

1.首先在官网下载支持Python语言的jmeter语言扩展包

下载地址:Jython Standalone

步骤一:选择最新版本即可

步骤二:选择右上角download,选择jar包

2.把下载的jython-standalone-2.7.2.jar 放到 jmeter的lib/ext文件夹。重启jmeter,此时就可以看到支持Python语言(如果不重新启动默认不会生效)

放在jmeter的lib/ext文件夹下

3.此时新建JSR223 Sampler,语言选择jython

JSR223 Sampler

语言选择jython

4.通过Python实现登录signature的md5加密。

拷贝自己已经写好的Python代码到Script区域:修改部分:1.获得jmeter已有的参数用vars.get("参数名"),2.将处理好的值传给jmeter用vars.put("引用参数名",Python代码块中参数)

import hashlib
import time

time_stamp = str(int(time.time()))  # 获取时间戳
user = vars.get("user")  # 获取jmeter参数user
pwd = vars.get("pwd")  # 获取jmeter参数pwd
key = vars.get("sign_key")  # 获取jmeter参数sign_key
sign_body = '{"YHB": {"SJHM": "%s", "MM": "%s"}}' % (user, pwd) # 将字符串参数组合起来
sign_str = 'Body=%s' % sign_body + '&Timestamp=%s' % time_stamp + key  # 将字符串参数组合起来
m = hashlib.md5()
m.update(sign_str.encode('UTF-8'))
signature = m.hexdigest()  # 将字符串sign_strMD5加密
vars.put("sign_body_new",sign_body)  # 将参数sign_body传给jmeter,并将变量命名为sign_body_new
vars.put("signature_new",signature)
vars.put("time_stamp_new",time_stamp)

log.info("==========="+time_stamp+"============")  # 日志打印
log.info("==========="+signature+"============")

试运行的时候,打开选项-日志,查看后台运行日志


打开日志

运行结果

5.运行结果显示,已成功加密,接下来就直接在jmeter中使用上述变量即可。

变量引用

最后结果:加密成功


最终结果

转载:https://www.cnblogs.com/mengyu/p/13323957.html

你可能感兴趣的:(jmeter如何使用Python脚本)