如何在一个容器中运行多个JMX文件?

时间:2019-12-26 12:54:37

标签: docker automation jmeter containers

我正在使用JMeter来测试API和Docker。我想在一个容器中运行JMX文件。目前,我可以在一个容器中运行一个JMX文件。

我用来运行测试的脚本是:

function pdf_download(){ $this->load->helper('file'); $curl = $this->api_call->callapi('GET',APIURL."carts/96171/tickets"); $content = $curl; $my_file = FCPATH . '/document/text.txt'; if (write_file($my_file, $content) == FALSE) { echo 'Unable to write the file'; } else { echo 'File written!'; } $pdf_base64 = $my_file; //Get File content from txt file $pdf_base64_handler = fopen($pdf_base64,'r'); $pdf_content = fread ($pdf_base64_handler,filesize($pdf_base64)); fclose ($pdf_base64_handler); //Decode pdf content $pdf_decoded = base64_decode ($pdf_content); //Write data back to pdf file $pdf_file=FCPATH . '/document/ticket.pdf'; $pdf = fopen ($pdf_file,'w'); fwrite ($pdf,$pdf_decoded);//Creating a pdf from the encoded content in txt file fclose ($pdf); header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=tickets.pdf"); ob_clean(); flush(); readfile($pdf_file);//downloading the pdf file exit(); }

如何在一个容器中运行多个JMX文件?你能帮我吗?

2 个答案:

答案 0 :(得分:0)

使用bash脚本替换对单个jmx文件的调用,然后再调用多个jmeter脚本

答案 1 :(得分:0)

您可以考虑使用GNU Parallel命令,例如:

docker-compose exec master parallel jmeter -p /jmeter/sample/stage.properties -n -t /jmeter/sample/mob{}.jmx -l /jmeter/sample/mob{}.jtl ::: 1 2

这样mob1.jmxmob2.jmx将同时执行,结果将分别写入mob1.jtlmob2.jtl文件中。

另一种选择是使用Taurus工具作为JMeter测试的包装器,您可以在简单的YAML文件中声明测试,例如:

---
execution:
- scenario:
    script: /jmeter/sample/mob1.jmx
- scenario: 
    script: /jmeter/sample/mob2.jmx

Taurus will start them in parallel


您可能需要先将GNU parallel或Taurus安装到您的容器,默认情况下很可能没有安装。