接口测试 jmeter 接口测试通过返回 json 数据值正则取参

初痕 · 2018年11月13日 · 最后由 米酒 回复于 2018年11月19日 · 1634 次阅读

json 数据如下
[
{
"id":"5837f97816e69bd53c13af08",
"name":"精选",
"pinyin":"jing_xuan",
"navigationType":"JINGXUAN"
},
{
"id":"57f9bb3a1b14e4ed62aa359b",
"name":"视频",
"pinyin":"shi_pin",
"navigationType":"OTHER"
}
]
目前想通过方法 2 取值,以便后期维护
方法 1:
"id":"(.+?)"
可取到 id 值
方法 2:
"id":"(.+?)", "name":"精选",
无法取到 id 值

网上无案例,有高手解答吗,这种 json 数据很多

共收到 11 条回复 时间 点赞

用 jsonpath 提取,更方便些

配来配去,一点技术成长也没有。几行代码搞定的事情,就用代码搞定。

虽然我从来没有这么用过,直接写代码。

但是不排除某天这么用,看了一眼。解决方案如下:

  1. 正则表达式是这样的
"id":"([^\,\}]+)"

  1. 接口 1 返回结果作为接口 2 的参数

  2. 效果如下

3 楼很清楚了

方法 2 取不到的原因是你忽略了换行

乾行 回复

与"id":"(.+?)",意思一样

为什么不用 JsonObject 直接取呢?

谢谢各位,问题已解决,引用了 3 楼的正则

而 (.+?) 实际是

hellomike 回复

谢谢,了解下都差不多哈

初痕 回复

差不多,使用"id":"(.+?)"可以匹配出来答案,考虑 json 格式的通用性,我给出的正则表达式可以用于匹配{"a":1,"b":true}这样的结果,但是得修改一下正则表达式。

测试如下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册