Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何将jar文件用于循环计数器-Jmeter_Loops_Jmeter - Fatal编程技术网

Loops 如何将jar文件用于循环计数器-Jmeter

Loops 如何将jar文件用于循环计数器-Jmeter,loops,jmeter,Loops,Jmeter,我想创建一个场景,在这个场景中,我想将jar文件中的数据使用到Jmeter循环逻辑中 我的罐子看起来像: public String Australia() { String a = "{" + "\"location\": {" + "\"lat\": -33.8669710," + "\"lng\": 151.1958750" + "}," + "\"accura

我想创建一个场景,在这个场景中,我想将jar文件中的数据使用到Jmeter循环逻辑中

我的罐子看起来像:

public String Australia()
{
    String a = "{"
            + "\"location\": {" 
            + "\"lat\": -33.8669710,"
            + "\"lng\": 151.1958750"
            + "},"
            + "\"accuracy\": 50,"
            + "\"name\": \"Google Shoes!\","
            + "\"phone_number\": \"(02) 9374 4000\","
            + "\"address\": \"48 Pirrama Road, Pyrmont, NSW 2009, Australia\","
            + "\"types\": [\"shoe_store\"],"
            + "\"website\": \"http://www.google.com.au/\","
            + "\"language\": \"en-AU\""
            +
            "}";

    return a;
}

public String canada()
{
    String c = "{"
            + "\"location\": {" 
            + "\"lat\": -33.8669710,"
            + "\"lng\": 151.1958750"
            + "},"
            + "\"accuracy\": 50,"
            + "\"name\": \"Google Shoes!\","
            + "\"phone_number\": \"(02) 9374 4000\","
            + "\"address\": \"48 Pirrama Road, Pyrmont, NSW 2009, Canada\","
            + "\"types\": [\"shoe_store\"],"
            + "\"website\": \"http://www.google.com.ca/\","
            + "\"language\": \"en-CA\""
            +
            "}";

    return c;
}
1) 有了以上数据,我想“输入”Jmeter调用,如下图所述

2) 每次我在jar文件中添加新的国家时,循环都会相应地增加

一些人认为这是如何做到的,我应该使用什么作为变量,以及如何告诉循环增加

  • 添加为
    002\u 2\u发送付款请求的子项
  • 将以下代码放入“脚本”区域:

  • 在循环控制器中定义“循环计数”,如下所示:

  • com.example
    更改为您自己的包名,将
    TestData
    更改为您的类名

  • 一旦将.jar的新版本放到JMeter类路径中,您将需要重新启动JMeter以获取更改
  • 就是这样,JSR223预处理器循环控制器的每次迭代都将执行类中的下一个函数,并使用返回的数据更新请求体:

    参考资料:


    谢谢你的帮助!我是否需要在002_2发送付款“正文数据”中输入一些内容?或者它被预处理程序填充为空,这
    sampler.addNonencodeArgument('',payload')
    行就完成了这个任务
    sampler
    是的缩写,请参阅JavaDoc for functions/properties描述和文章,以了解有关此和其他可用于JSR223测试元素的JMeter API缩写的更多信息
    def testData = new com.example.TestData()
    def methods = testData.class.getDeclaredMethods()
    def payload = org.apache.commons.lang.reflect.MethodUtils.invokeExactMethod(testData, methods[vars.get('__jm__Loop Controller__idx') as int].getName())
    sampler.addNonEncodedArgument('',payload,'')
    sampler.setPostBodyRaw(true)
    
    ${__groovy(com.example.TestData.getDeclaredMethods().size(),)}