Jmeter通过OS进程取样器调用Python脚本实现参数互传

1、 Python中 sys.argv的用法解释:sys.argv可以让python脚本从程序外部获取参数,sys.argv是一个列表,可用[]提取其中的元素,其第一个元素是程序本身,随后才依次是外部给予的参数,可以接受多个参数,每个参数用空格隔开即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

'''该脚本用于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脚本并传入两个参数:

 注意:脚本中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 也是表示传两个参数)】。

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、比如在接口请求中使用提取到的参数:

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jmeter可以通过执行python脚本来进行测试。具体的步骤如下: 1. 在jmeter中设置参数,可以通过参数化来递数据给python脚本使用。 2. 下载jython-standalone.jar包,并将其放置在jmeter的lib目录下,并重启jmeter。这个jar包是用来支持在jmeter中执行python脚本的。 3. 创建一个py模板文件,并在其中编写需要执行的python脚本代码。 4. 在jmeter中使用BeanShell Sampler或者JSR223 Sampler来执行python脚本。在执行之前,可以通过jmeter修改py模板文件中的参数,以便根据需要进行测试。 5. 执行python脚本后,可以获取脚本的执行输出结果,并将其设置为变量,以便后续的测试使用。 下面是一个示例的python脚本代码: ```python # 获取jmeter参数 param = vars.get("param") print("hello") # 设置响应信息 SampleResult.setResponseData("message") SampleResult.setResponseCode("502") SampleResult.setSuccessful(False) ``` 通过以上步骤,你可以在jmeter中成功调用python脚本进行测试。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [jmeter-执行python脚本](https://blog.csdn.net/qq_28913223/article/details/125019029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Jmeter入门(三)调用python脚本(附案例)](https://blog.csdn.net/Makasa/article/details/107558789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值