jmeter-如何格式化正文数据中的json(从正则表达式中提取)

时间:2018-09-27 01:06:09

标签: json regex jmeter

我正在尝试使用强文本通过常规提取来提取json,然后将其发布到具有格式化json的下一个请求正文数据中。对于我提取的json,它们没有格式化,我只是想知道是否有任何函数或方式格式化它?

  • 使用正则表达式提取器获取请求(提取粗体部分)

{ "groupedData": [{ "key": "FirstItem", "count": 1, "groupID": 1, "items": [{ **"keyID": 97215, "film": { "name": xxxx, "id": xxx, "vendorID": 0, "type": "PG", "xxxx": xxx }, "subGroups": null** }], "totalRows": 1 }] }

  • 在下一个具有提取数据的请求中发布(从上述请求中提取的带有正则表达式的JSON数据显示为整个字符串,只是想知道如何格式化此主体数据?)

{ "keyID": 123, "name": "SYSGEN", "period": { "keyID": 427, }, "periodID": 427, "items": [{ **${JSON}** }], "group": 0, "selRow": false, "rowId": 1, "$rowState": { "invalid": false, }, "XXXX": XXXX, }], "ZZZZZZ": "ZZZZZ" }

2 个答案:

答案 0 :(得分:1)

您可以使用__groovy() function来格式化JSON,即

  1. 如果您有一个JMeter Variable @Bean SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { http // ... .oauth2Login() .authenticationConverter(converter) // set .authenticationManager(manager) .authorizedClientRepository(authorizedClients) .clientRegistrationRepository(clientRegistrations); return http.build(); } 存储提取的JSON数据,并在HTTP Request中将其称为foo
  2. 用以下函数替换${foo}变量引用:

    ${foo}
  3. 就是这样,上面的Groovy表达式将格式化${__groovy(groovy.json.JsonOutput.prettyPrint(vars.get('foo')),)} JMeter变量
  4. 中的JSON格式。

答案 1 :(得分:1)

如果要获取给定边界之间的响应文本,请使用Boundary Extractor

左边界:

  "items": [{ 

右边界:

 }],

您也可以使用View Results Tree

对其进行测试
  

边界提取器测试器仅适用于文本响应。它在上部面板中显示纯文本。使用“测试”按钮,用户可以将边界提取器查询应用于上面板,结果将显示在下面板中。