从python启动Jmeter并在运行时检索信息

时间:2018-05-25 10:07:54

标签: python jmeter

我有一个Jmeter脚本,在步骤1:它使用accountId创建一个帐户,然后步骤2:对该帐户进行约30分钟的操作。

我编写了一个包含2个线程的python代码,在一个线程中,它使用:

调用Jmeter脚本
  subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

线程实际运行并调用我的jmeter脚本并运行结束。但是我想在thread1和步骤1中创建帐户ID,然后使用thread2中的其他命令监控它(当第一个线程运行Jmeter脚本时)。即使我有一个后期Bean进程将accountId打印到控制台,但在Jmeter完成第二步之前我不会这样做。 我不想在文本文件中写入帐户ID并让我在python中读取我的第二个帖子(这真的不是一个好方法),有没有其他方法可以在步骤1中获得该帐户ID是创造了吗?

2 个答案:

答案 0 :(得分:0)

我能够让它像这样工作:

def subCmdJmeter (self,cmd):
    with Popen(cmd, stdout=PIPE, shell=True, bufsize=1, universal_newlines=True) as p:
        for line in p.stdout:
            print(line, end='')  # process line here

    if p.returncode != 0:
        raise CalledProcessError(p.returncode, p.args)

答案 1 :(得分:0)

您可能想查看现有的解决方案,即Taurus工具,它是JMeter的基于Python的包装器,还有更多工具提供了统一的配置和启动测试以及以相同格式生成结果的方法。如果是JMeter,则可以并行执行多个测试

您将能够在同一终端窗口中使用基于控制台的UI查看进度:

Taurus Running Test

有关金牛座的安装和使用的更多信息,请参见Taurus: A New Star in the Test Automation Tools Constellation文章。