Jmeter 在正则表达式中计算并写入提取值的数量
我有一个json与下面的部分。我想写入提供者的数量,并将其写入结果文件。例如,在这个系统中有10个提供者。因此,我的要求是在文件中写入数字10。我怎么做Jmeter 在正则表达式中计算并写入提取值的数量,jmeter,Jmeter,我有一个json与下面的部分。我想写入提供者的数量,并将其写入结果文件。例如,在这个系统中有10个提供者。因此,我的要求是在文件中写入数字10。我怎么做 "providers": [ { "MM_logofile":"agd.svg", "MM_isOfficialWithoutLogo":false, "code":"AGD", "name":"Agoda.com",
"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中提到的那样,现在它可以工作了。这是一个愚蠢的错误。我没有解析整数。我还有一个问题。让我把它作为一个新问题发布。希望你也能帮上忙。那个有点复杂:)完成了!显然,我的选票不会显示出来,因为我是新的。是,将编辑并发布响应。谢谢!