“ 在性能测试领域,Apache JMeter已经成为测试专业人士的首选工具,用于模拟用户行为、测量响应时间、评估系统性能。但在某些情境下,为了满足特定需求,我们需要更多的灵活性,比如引入Python来进行特定操作或处理复杂逻辑。”
Jython
Jython是Python语言的Java实现,它允许您在JMeter中使用Python脚本,不需要额外的JAR包。
一、下载并配置
- 官网下载地址:Downloads | Jython
网盘链接:downloads > Jython 提取码:
ux02
将下载的jar包放到
Jmeter
的安装路径/lib,如:D:\application\apache-jmeter-5.1.1\lib
- 切记,重启
jmeter
二、使用技巧
新增一个JSR223,选择语言为“jython”;
注意:由于这个包使用的python版本为 2.7,所以写代码的时候不能全搬python3的语法过来玩。
示例一:前后置脚本中写python代码。
# jsr223 前置代码中编写:
"""该脚本用于加密登录信息"""
import hashlib
import sys
import time
import json
def password_srt(pubkey, password):
time_str = str(time.time())
sign_str = str(pubkey) + time_str + str(password)
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest()
res = {'sign': sign, 'pubkey': pubkey, 'password': password}
res = json.dumps(res)
return res
result = password_srt(1234,5678)
log.info(result)
vars.put("secrity",result) # 设置到变量,为后续取样器使用。
贴图:
示例二:后置脚本中写python代码
# jsr223 后置脚本代码
import json
result = prev.getResponseDataAsString(); # 固定写法,获取响应结果
log.info("------"+result) # 这里使用print 会打印不到日志里面来显示。
json_data = json.loads(result) # 转python识别的字典对象
token = json_data.get("token") # 获取token值
log.info(token)
vars.put("token",token)
贴图:
添加一个debug sample来检查结果:
最终执行结果:
一些小Tips!!:
性能流泪: 使用 Python 脚本会引入性能问题,因为 Python 是一种解释型语言,相比于 JMeter 自带的 Java 脚本,Python 脚本的执行效率可能会稍低,勇哥踩过这个坑!!!
维护想哭: 逻辑分散在 JMeter 的测试计划和 Python 脚本之间时,会导致维护困难;也不利于团队协作!
依赖一坨翔: Python是2.7版本且难以支持第三方python库使用,要写复杂的代码也是很头疼的!
调试难上天: JMeter 中调试 Python 脚本真是看花眼,因为你看的信息都是jmeter输出的,定位问题一言难尽!
总结
以上就是勇哥今天为各位小伙伴准备的内容,如果你想了解更多关于Python自动化测试的知识和技巧,欢迎关注我:公众号\博客\CSDN\B站:测试玩家勇哥
;我会不定期地分享更多的精彩内容。感谢你的阅读和支持!
题外话,勇哥打算把新建的技术交流群,打造成一个活跃的高质量技术群。工作中遇到的技术问题,都可以在里面咨询大家,还有工作内推的机会。有兴趣的小伙伴,欢迎加我(记得备注是进群还是报名学习)👇👇👇**
勇哥,10年落魄测试老司机,技术栈偏python,目前在一家超大型房产公司担任自动化测试主管,日常工作比较繁杂,主要负责自动化测试,性能测试、软件质量管理及人员管理。工作之余专注于为粉丝进行简历修改、面试辅导、模拟面试、资料分享、一对一自动化测试教学辅导等副业发展。目前已服务十多位小伙伴,取得高薪offer。
关注公众号,测试干货及时送达