JMeter通过OS Process Sampler调用Python脚本实现参数传递

季宁
季宁
发布时间:2026-10-15| 4人浏览过
原创

本文详解如何在JMeter中使用OS Process Sampler组件调用Python脚本,通过sys.argv接收外部参数并返回结果。结合.bat批处理文件与正则表达式提取器,实现JMeter与Python间的参数双向传递及数据提取,适用于接口自动化测试中的动态数据处理场景。

Python sys.argv参数接收原理

在Python中,sys.argv用于从程序外部获取命令行参数。sys.argv是一个列表对象,通过索引[]可以提取其中的元素。该列表的第一个元素始终是脚本本身的名称,随后的元素依次为外部传入的参数。只要参数之间用空格分隔,即可接收多个参数。

'''该脚本用于jmeter的OS进程提取器的调用'''
import hashlib
import sys
import time
 
parameter = sys.argv
# print(parameter, type(parameter))
 
def password_srt(pubkey,  password):
    time_str = str(time.time())
    sign_str = pubkey + time_str + password
    sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest()
    res = {'sign': sign, 'pubkey': pubkey, 'password': password}
    # print()的内容可被jmeter接收,可以在jmeter中对其相关参数进行提取。
    print(res)
    return res
 
if __name__ == '__main__':
    password_srt(parameter[1], parameter[2])

例如,在命令行(cmd)中调用上述Python脚本时,可以在命令后追加两个参数进行传递。

需要注意的是,Python脚本中print()函数输出的内容均可被JMeter接收。在JMeter中,可以使用正则表达式提取器来提取这些输出中的特定参数值。

构建批处理文件

新建一个.bat批处理文件,其具体命令内容如下:python E:\python_project\Python-Auto\python_jmeter\jmeter_os_process.py %1 %2。其中,%1和%2表示将两个参数传递给Python文件(若使用%1 %1则表示传递两个相同的参数)。

JMeter配置OS Process Sampler

在JMeter中,通过OS Process Sampler组件读取并执行上述批处理文件,这实际上就是执行预先编写的Python脚本。

(1)在JMeter中添加【OS Process Sampler】组件的路径如下:

(2)①在【Command】(命令)输入框中,填写.bat文件的完整路径,例如:E:\python_project\Python-Auto\python_jmeter\jmeter_os_process.bat。

②在【Command Line Arguments】(命令行参数)中添加【Value】(值)。传入值的数量需与.bat文件中定义的参数数量一致,例如传入两个值时对应%1和%2。

③在【Command Line Arguments】中添加【Value】时,支持使用变量,例如引用JMeter中参数化定义的变量。

参数提取与应用

使用【正则表达式提取器】对Python脚本打印输出的参数进行提取,以便在JMeter后续步骤中使用。(注意:一个正则表达式提取器仅能提取一个参数,若需提取多个参数,需配置多个提取器。)

例如,在接口请求中使用上述提取到的参数进行调用。

至此,关于JMeter通过OS Process Sampler调用Python脚本实现参数互传的介绍已完成。如需了解更多关于Python脚本实现参数互传的内容,请搜索本站历史文章或继续浏览相关文章,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。