JMeter与Python的多重交响:从入门到高级应用(上)

在性能测试领域,Apache JMeter已经成为测试专业人士的首选工具,但在某些情境下,为了满足特定需求,我们需要更多的灵活性,比如引入Python来进行特定操作或处理复杂逻辑。

性能测试领域,Apache JMeter已经成为测试专业人士的首选工具,但在某些情境下,为了满足特定需求,我们需要更多的灵活性,比如引入Python来进行特定操作或处理复杂逻辑。

在性能测试领域,Apache JMeter已经成为测试专业人士的首选工具,用于模拟用户行为、测量响应时间、评估系统性能。但在某些情境下,为了满足特定需求,我们需要更多的灵活性,比如引入Python来进行特定操作或处理复杂逻辑。

JMeter与Python的多重交响:从入门到高级应用(上)

Jython

Jython是Python语言的Java实现,它允许您在JMeter中使用Python脚本,不需要额外的JAR包。

一、下载并配置

(1) 官网下载地址:Downloads | Jython

JMeter与Python的多重交响:从入门到高级应用(上)

(2) 网盘链接:downloads > Jython 提取码:ux02

(3) 将下载的jar包放到Jmeter的安装路径/lib,如:D:\application\apache-jmeter-5.1.1\lib

JMeter与Python的多重交响:从入门到高级应用(上)

() 切记,重启jmeter

二、使用技巧

新增一个JSR223,选择语言为“jython”;

JMeter与Python的多重交响:从入门到高级应用(上)

注意:由于这个包使用的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) # 设置到变量,为后续取样器使用。

贴图:

JMeter与Python的多重交响:从入门到高级应用(上)

示例二:后置脚本中写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)

贴图:

JMeter与Python的多重交响:从入门到高级应用(上)

添加一个debug sample来检查结果:

JMeter与Python的多重交响:从入门到高级应用(上)

最终执行结果:

JMeter与Python的多重交响:从入门到高级应用(上)

一些小Tips:

  • 性能流泪:使用 Python 脚本会引入性能问题,因为 Python 是一种解释型语言,相比于 JMeter 自带的 Java 脚本,Python 脚本的执行效率可能会稍低,勇哥踩过这个坑!!!
  • 维护想哭:逻辑分散在 JMeter 的测试计划和 Python 脚本之间时,会导致维护困难;也不利于团队协作!
  • 依赖一坨翔:Python是2.7版本且难以支持第三方python库使用,要写复杂的代码也是很头疼的!
  • 调试难上天:JMeter 中调试 Python 脚本真是看花眼,因为你看的信息都是jmeter输出的,定位问题一言难尽!

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年9月17日 00:10
下一篇 2023年9月17日 00:11

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信