Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
Json JMeter正则表达式包含下划线,行为不稳定_Json_Regex_Jmeter_Load Testing - Fatal编程技术网

Json JMeter正则表达式包含下划线,行为不稳定

Json JMeter正则表达式包含下划线,行为不稳定,json,regex,jmeter,load-testing,Json,Regex,Jmeter,Load Testing,我正在使用一个处理文件提交和处理的应用程序,我正在尝试执行一个负载测试,不同的用户针对不同的文件,并根据文件的状态执行不同的操作。此信息存在于从服务器发送的超长JSON响应中,该响应还包含所有文件的所有信息。然而,特别方便的是,我感兴趣的领域彼此非常接近,可以尝试将它们关联起来 我要做的是:我需要提取每个文件的ID号以定位它,并且我需要能够随机定位与特定状态相关的文件ID。我关心的答复结构如下: { "responseObject":{ "baseFilingReques

我正在使用一个处理文件提交和处理的应用程序,我正在尝试执行一个负载测试,不同的用户针对不同的文件,并根据文件的状态执行不同的操作。此信息存在于从服务器发送的超长JSON响应中,该响应还包含所有文件的所有信息。然而,特别方便的是,我感兴趣的领域彼此非常接近,可以尝试将它们关联起来

我要做的是:我需要提取每个文件的ID号以定位它,并且我需要能够随机定位与特定状态相关的文件ID。我关心的答复结构如下:

{
    "responseObject":{
        "baseFilingRequests":{
            "^Value":[
            {"fields":"[values]"},
            {"fields":"[values]"},
            {
                "fields":"values",
                "referencedListings":"[value]",
                "id":"[value]",
                "referenceId":"[value]",
                "status":"[value]",
                "filingName":"[value]",
                "fields":"values",
            },
            {"fields":"[values]"},
            {"fields":"[values]"}
            ]
        }   
    }
}
因此,我想我可以将这个表达式粘贴到正则表达式中,修改每个线程组的状态字段,以便每个线程组都以不同状态的文件为目标(状态为“已批准”、“状态为“已拒绝”,等等),然后使用如下表达式提取找到的每个文件的ID:

\"referencedListings\":null,\"id\":\"(.+?)\",\"referenceId\":\"\d\d\d\d\d\d\d\”,\"status\":\"STATUS[_]RECEIVED\",
但是,在尝试提取具有我指定的状态的文件ID时,下划线给我带来了麻烦。有时它捕获一个不同的状态(捕获一个与状态为“已取消”状态的文件相对应的文件ID,而不是我指定的状态为“已锁定”),有时它捕获一个ID,但不会停止提取;它尽可能多地提取后面的响应,在变量中插入这个庞大的字符串,然后尝试在我以后的请求中使用它作为归档ID,生成空指针异常。这种行为是不稳定的,似乎是随机的,我不知道如何解决这个问题

我尝试过使用反斜杠和我能想到的几乎所有其他语法来转义字符,但这种行为仍然存在。毫无疑问,它是下划线,因为每当我只使用下划线之前的所有内容尝试表达式时,正则表达式的行为都是一致的和可预测的。但我不能忽略它,因为它是状态语法的一部分,我需要检测它,这样我就可以相应地过滤文件,更重要的是,当像status_PENDING_UNLOCK这样的状态包含两个下划线时,我需要能够同时检测这两个下划线


对此问题的任何见解都将不胜感激。

不要使用正则表达式对JSON数据执行关联(这同样适用于和)


从这里开始,您可以使用它来使用

执行相关,您可以使用JSON提取器吗?语法是
$…id
,它将检索
id
的所有实例。您可以在后续请求中使用该选项。myvar_1、myvar_2等。JSON后处理器允许您使用JSON-PATH语法从JSON响应中提取数据。这个后处理器非常类似于正则表达式提取器。它必须作为HTTP采样器或具有响应的任何其他采样器的子级放置。它将允许您以一种非常简单的方式提取文本内容,请参阅JSON路径语法。有关更多详细信息,请查看这听起来非常有用。但是,如果在响应中包含所有文件的其他名为id的字段与我要提取的文件id不明确对应,那么这个字段本身会起作用吗?更重要的是,我必须设置什么样的条件,以便它只提取与我正在查找的特定状态值的状态字段同时存在的id字段?将根据您在
JSON提取器中提到的语法检索
id
。例如,
$…id
将仅检索JSON结构中的所有
id
。如果
id
位于JSON结构中的某个位置,它将不会提取。请发布完整的JSON,我将能够为您提供确切的语法。谢谢好的,谢谢,我用一个更直观的代码结构更新了原来的帖子。在每个嵌套级别中都有许多其他字段,但我只包含了我关心的字段。在Value字段中有数百个分组,其中只有一部分包含归档ID和状态,我需要能够从中随机筛选和选择。我感谢你的帮助!您的JSON无效。你能把正确的寄出去吗?