Jmeter - 找到正确的项目后停止读取CSV文件

时间:2015-08-18 05:10:13

标签: csv jmeter

我有一个CSV文件,如:

  

brandid1,brandurl1,producturl1

     

brandid2,brandurl2,producturl2

     

brandid3,brandurl3,producturl3

以及从之前的回复中得到的变量$ {brandid}。 现在我想从CSV文件中找到brandurl和producturl如果brandid相同(例如:$ {brandid} == $ {brandid2},它将返回brandurl2和producturl2).m脚本将在不运行整个csv文件的情况下停止。

我必须使用“While”控制器和BSF预处理器,但脚本始终运行整个csv文件。

  

while(“$ {tmp}”==“1”)

     

- http请求(使用brandurl,producturl)

     

- csv文件

     

- HTTP标头管理器

     

- BSF PreProcessor

使用tmp声明全局tmp=1和BSF如下:

  var brand_idOfWH = vars.get("brand_idOfWH");
var brandid_csv = vars.get("brandid");

 var brandurl = vars.get("brandurl");
 vars.put("brand_url",brandurl);

 var producturl = vars.get("producturl");
 vars.put("product_url",producturl);

if (brand_idOfWH == brandid_csv)
{
 vars.put("tmp","0");
}

如果我找到正确的brandid

,请帮我停止阅读CSV文件

1 个答案:

答案 0 :(得分:0)

  1. 你在滥用控制器,根据documentation它接受功能变量,它无法解析你的表情因此它不会退出循环。正确的功能类似于:

    ${__javaScript("${tmp}" == "1",)}
    
  2. 不建议使用BSF测试元素进行脚本编写。如果您必须通过脚本来克服JMeter限制,请考虑使用JSR223 Test Elements和“groovy”作为语言 - 这样您将获得最佳性能。有关安装Groovy脚本引擎支持和Groovy脚本最佳实践的详细说明,请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!指南。