Jmeter通过OS进程取样器调用Python脚本实现参数互传
1、 Python中 sys.argv的用法解释:sys.argv可以让python脚本从程序外部获取参数,sys.argv是一个列表,可用[]提取其中的元素,其第一个元素是程序本身,随后才依次是外部给予的参数,可以接受多个参数,每个参数用空格隔开即可。
'''该脚本用于jmeter的OS进程提取器的调用'''import hashlibimport sysimport time parameter = sys.argv# print(parameter, type(parameter)) def password_srt(pubkey,password):time_str = str(time.time())sign_str = pubkey + time_str + passwordsign = 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脚本并传入两个参数:
文章图片
注意:脚本中print()的内容都可被jmeter接收,可以在jmeter中使用正则表达式提取器对相关参数进行提取。2、新增一个.bat文件,具体命令内容:
python E:\python_project\Python-Auto\python_jmeter\jmeter_os_process.py %1 %2
【%1 %2表示将2个参数传递给python文件(或者使用%1 %1 也是表示传两个参数)】。文章图片
【Jmeter通过OS进程取样器调用Python脚本实现参数互传】3.通过JMeter的
OS Process Sampler
组件读取批处理文件,其实就是执行编写的python脚本。(1)通过以下路径在jmeter中添加【OS进程取样器】:
文章图片
(2)①在【命令】输入框中填入.bat文件的路径,比如:
E:\python_project\Python-Auto\python_jmeter\jmeter_os_process.bat
②在【命令行参数】添加【值】,根据这里传几个值,.bat文件就需要填传入几个值,比如两个为%1 %2
③【命令行参数】添加【值】的,可以使用变量,比如引用jmeter参数化的变量;
文章图片
4、使用【正则表达式提取器】对python脚本中打印出来的参数进行提取,以供jmeter使用。(一个正则表达式提取器只能提取一个参数,要提取多个参数可以使用多个提取器)
文章图片
5、比如在接口请求中使用提取到的参数:
文章图片
到此这篇关于Jmeter通过OS进程取样器调用Python脚本实现参数互传的文章就介绍到这了,更多相关Python脚本实现参数互传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- SpringBoot如何通过配置文件(yml|SpringBoot如何通过配置文件(yml,properties)限制文件上传大小
- Linux|【Linux】进程详解一(进程概念)
- 一文搞定Linux进程和线程(详细图解)
- Linux进程-如何查看进程详情
- 手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
- 通过一篇文章由浅入深的理解JSONP并拓展
- linux|linux 下关闭远程终端进程不退出的四种方法
- (2.1)终端和进程的关系
- 与容器服务 ACK 发行版的深度对话最终弹(如何通过 open-local 玩转容器本地存储)
- linux|linux进程、线程常用的几个基础知识点