jmeter-5.0 - 使用 JMeter 修剪和拆分 JSON 响应正文
问题描述
我正在尝试使用 JMeter 测试 REST API。我的领导告诉我使用 JMeter 对每个 API 进行负载测试。目前我正在测试一个 Get API 请求,并且我得到了下面的 JSON 响应正文。
现在我必须将此 JSON 正文传递给另一个 HTTP 请求并测试 API。
我的问题:
- 如何从 JSON 响应正文中修剪双引号字符?
- 如何使用拆分方法获取 ts 和 auth 的值,例如 (ts=20190221004021 and auth=EngineeringSolutions:ydvMMlY2uxiKG0yuwh1IbVgR2mfqTQaQncTEaMr+Ef0=)
我知道我可以使用正则表达式提取器或 BeanShell 预处理器来执行所有操作,但我不知道该怎么做。谁能指导我如何修剪和拆分 JSON 响应?
解决方案
- 您不会删除双引号,它们是 JSON 语法的一部分。
- 在 URL 中拆分查询字符串的方法有很多,这里有两种方法。
var url = "https://api.rewards.com:/lists/v1/listcontainer/1?ts=20190221004021&auth=EngineeringSolutions:ydvMMlY2uxiKG0yuwh1IbVgR2mfqTQaQncTEaMr+Ef0=";
//method 1: pure js
var queries = url.match(/(.+)\?(.+)/)[2].split("&");
var params = {};
for (let i=0; i<queries.length; i++){
var item = queries[i].match(/([0-9A-Za-z]+)=(.+)/);
params[item[1]] = item[2]
}
console.log(JSON.stringify(params,null,2));
//method 2: new in ES6
var queryStr = url.match(/(.+)\?(.+)/)[2];
var urlParams = new URLSearchParams(queryStr);
var params = {};
for (let item of urlParams.entries())
params[item[0]] = item[1];
console.log(JSON.stringify(params,null,2));
推荐阅读
- python - 如何使用 Pandas DataFrame 解析 MLB 球队和球员数据?
- ruby-on-rails - 如何将此 text_method 或 label_method 代码从模型移动到视图
- javascript - VueJS切换路由导致内存泄漏?
- android - 如何在androidx中使用anko库
- mysql - 如何让 MySQL 查询的结果显示在 cxGrid 中?
- php - 谈论并发 PHP 时的最佳方法
- python - 安装到 --target 目录时,如何对多个目录中已安装的 pgks 进行 pip 检查?
- cocoa - 显示工作表后,工作表中的 Mac OS 10.14+ NSTextField 不会以编程方式更新
- node.js - NodeJS:由于不支持的 mime 类型而未加载样式表
- button - Photoswipe 将关闭按钮添加到照片并隐藏按钮栏