Jmeter如何使用BeanShell取样器调用Python脚本

1、在线程组中按以下方式添加【BeanShell取样器】:

2、把以下这段代码放到【BeanShell取样器】的脚本区域:

 注意点:

  • (1)命令里的Python脚本路径改成自己脚本的路径,-t后面是填需要传入Python脚本的参数,可传入jmeter的变量,也可以传多个参数。
  • (2)定义Jmeter中引用的变量名,记得这个变量名,后面jmeter调用时可用到。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

import java.io.BufferedReader;

import java.io.InputStreamReader;

  

// 1. 命令里的路径改成自己脚本的路径,-t后面是填需要传入Python脚本的参数,可传入jmeter的变量。

String command = "cmd /c python E://python_project//Python-Auto//python_jmeter//zbg_password_rsa.py  -t ${pubKey}";

  

String var;

Runtime rt = Runtime.getRuntime();

Process pr = rt.exec(command);

  

pr.waitFor();

  

BufferedReader b = new BufferedReader(new InputStreamReader(pr.getInputStream()));

String line = "";

StringBuilder response = new StringBuilder();

while ((line = b.readLine()) != null) {

    response.append(line);

  

String response_data = response.toString();

  

System.out.println(response_data);

b.close();

  

var = response.toString();

  

// 2. 定义Jmeter中引用的变量名,jmeter后面可以直接使用${变量名}调用变量;

vars.put("password_str",var);

  

//把var打印到jmeter.log的日志中,有需要可以把下方代码加上

//log.info(var);

如下图所示:

3、在Python中需要以下代码去获取jmeter传入的值,经过Python处理后,在使用打印功能传给jmeter(BeanShell取样器脚本中的Java代码作用就是接受Python脚本传过来的值,并转化为jmeter可直接调用的变量)。

1

2

3

4

5

6

7

8

9

10

11

12

import argparse

# 获取jmeter传入的值,然后赋值给变量ticket,变量即可为Python调用

parser = argparse.ArgumentParser()

parser.add_argument("-t", "--ticket", help="这是ticket")

args = parser.parse_args()

ticket = args.ticket

#print('你输入的值:{}'.format(ticket))

  

# 这是Python脚本处理过程代码,省略

  

# 最后Python把处理好的值传给jmeter,就是直接打印即可

print('这里填需要传给jmeter的值')

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值