Jmeter 在正则表达式中计算并写入提取值的数量

Jmeter 在正则表达式中计算并写入提取值的数量,jmeter,Jmeter,我有一个json与下面的部分。我想写入提供者的数量,并将其写入结果文件。例如,在这个系统中有10个提供者。因此,我的要求是在文件中写入数字10。我怎么做 "providers": [ { "MM_logofile":"agd.svg", "MM_isOfficialWithoutLogo":false, "code":"AGD", "name":"Agoda.com",

我有一个json与下面的部分。我想写入提供者的数量,并将其写入结果文件。例如,在这个系统中有10个提供者。因此,我的要求是在文件中写入数字10。我怎么做

 "providers":
    [
        {
            "MM_logofile":"agd.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"AGD",
            "name":"Agoda.com",
            "logo":"AGD.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"bks.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"BKS",
            "name":"Booking.com",
            "logo":"BKS.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"pln.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"PLN",
            "name":"Priceline.com",
            "logo":"PLN.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"ian.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"IAN",
            "name":"Hotels.com",
            "logo":"IAN-Other.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"gar.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"GAR",
            "name":"getaroom.com",
            "logo":"GAR.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"htv.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"HTV",
            "name":"HotelTravel.com",
            "logo":"HTV.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"exp.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"EXP",
            "name":"Expedia.dk",
            "logo":"EXP-DK.png",
            "isOfficial":false
        },
        {
            "MM_logofile":null,
            "MM_isOfficialWithoutLogo":true,
            "code":"BOO",
            "name":"Book with hotel",
            "logo":"",
            "isOfficial":true
        },
        {
            "MM_logofile":"hcl.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"HCL",
            "name":"HotelsClick.com",
            "logo":"HCL.png",
            "isOfficial":false
        },
        {
            "MM_logofile":"vnn.svg",
            "MM_isOfficialWithoutLogo":false,
            "code":"VNN",
            "name":"Venere.com",
            "logo":"VNN.png",
            "isOfficial":false
        }
    ],
使用插件(使用Jmeter插件管理器添加插件)并将其作为子级添加到获取JSON响应的采样器中

使用以下表达式:

$.providers[*]
${providers_matchNr}
并引用名称为
提供者
,如下图所示

一旦将值捕获到引用变量中,以后可以使用引用名称(如下所示)获得匹配结果的计数(即提供程序的数量),如下所示:

$.providers[*]
${providers_matchNr}

将提供商的计数保存到文件中:

添加BeanShell后处理器并添加以下代码:

    count = vars.get("providers_matchNr");

log.info(count);  // if you want to log something to jmeter.log file

// Pass true if you want to append to existing file
// If you want to overwrite, then don't pass the second argument
f = new FileOutputStream("C:\\Users\\USER_HP_2013_03\\Desktop\\New folder\\result.csv", true);
p = new PrintStream(f); 
this.interpreter.setOut(p); 
print(count);
f.close();
参考图像:

参考:


  • 谢谢你的回复,纳文。可以在一个文件中写入提供程序的数量吗?可以。添加BeanShell后处理器,创建文件并写入。(beanShell脚本类似于用Java编写的脚本语言)创建文件后,请使用其中一个文件编写选项。您可以使用var.get(“providers_matchNr”)检索该值,正如前面在benshell sampler.get中提到的那样,现在它可以工作了。这是一个愚蠢的错误。我没有解析整数。我还有一个问题。让我把它作为一个新问题发布。希望你也能帮上忙。那个有点复杂:)完成了!显然,我的选票不会显示出来,因为我是新的。是,将编辑并发布响应。谢谢!