1

在我的一个网络请求中,我得到Response Body data如下


{
"JobId":1528,
"CaseId":61687,
"CaseName":"CaseName_3923",
"FirmId":4175,
"FirmName":"FirmName7922442",
"CaseFirmName":"CaseFirmName7922442",
"LastUpdatedDate":"0001-01-01T00:00:00Z"
}

我需要在下一个 Web 请求中使用这个整体响应,为此我想删除初始字符。

有什么方法或设置适用于Jmeter我可以删除这些字符?事实上,我尝试Json Extractor了下面的设置,但这不起作用,所以我假设最初的  字符在没有将作业 ID 的值分配给变量时产生了问题vJobid

JSON 提取器: 适用于:仅主要示例 创建变量的名称:vJobId Json PathExtractor:$.JobID 匹配号 1

4

2 回答 2

3

JSON 结构开头的奇怪字符是错误编码的 BOM(字节顺序标记)。您似乎得到了一个 UTF-8 值,它显示为 ISO-8859-1 编码字符串。

所以首先要做的是找到编码错误的地方并纠正它。如果这不是一个选项,您可以尝试自己将数据编码回 UTF-8,方法是JSR223PostProcessor在 JSON 提取器之前使用以下 Groovy 代码:

vars.put("correctedResult",
        new String(prev.responseDataAsString.bytes("ISO-8859-1"), "UTF-8"));

此后处理器将尝试将错误编码的字符串转换回 UTF-8 并将结果存储在 JMeter 变量correctedResult中。选择JSON 提取器中JMeter Variable Name to use的值correctedResult以使用新编码的值而不是原始数据。

但显然,找到错误编码的原因是更好的方法。

于 2019-07-17T18:21:53.083 回答
1

您可以改用正则表达式提取器

使用正则表达式:

JobId":(\d+)

比赛编号1

它将匹配第一个工作 ID 号作为响应

于 2019-07-15T17:55:04.860 回答