【发布时间】:2022-01-01 14:28:51
【问题描述】:
使用 Blazemeter 的 Chrome 插件,我将 POST 请求保存到 JMeter。
请求被保存为参数化的 POST 请求:
POST https://qa2s.xxxx.com/dcs/public/facade.aspx
POST data:
show_unclosed=1&search_transaction_id=&with_cashless_external=0&user_preset_id=3&
responseType=json&num_of_rows=200&with_cash=0&rs%3AClearSession=true&
action=Dynamic_Transactions_Monitor&model=operations%2FdynamicTransactionsMonitorMega&
is_Legend=1&actor_id=2001186292&show_sales=1&time_period=47
当我运行这个请求时,我得到了 200 响应,但响应内容不正确,基于浏览器调试。响应应该是实体的 JSON 集合。
但是,当我将此请求保存为 cURL 命令并将其导入 JMeter 时,它以参数化 URL 的形式出现,并且它的响应符合预期。
https://qa2s.xxxx.com/dcs/public/facade.aspx?responseType=json&
model=operations/dynamicTransactionsMonitorMega&
action=Dynamic_Transactions_Monitor&&num_of_rows=200&show_unclosed=1&
show_sales=1&with_cash=0&with_cashless_external=0&is_Legend=1&
rs:ClearSession=true&time_period=41&search_transaction_id=&user_preset_id=3
这是为什么?
我希望前一个请求像后一个请求一样给出响应。
在 JMeter 中更易于阅读。确实没有必要将 POST-body 请求转换为参数化 URL。
一些附加信息
获得第一个返回 JSON 对象的请求的唯一方法是将 model 和 action 参数附加到 URL,将其他所有内容作为参数保留在正文中。
原来的 URL 似乎只是将您带到报告页面;您需要在 URL 中指定模型和操作才能实际检索报告数据。
所以我认为这是插件的问题(正如@Dmitri T 建议的那样)。
我说的对吗?
【问题讨论】:
标签: http post jmeter http-post blazemeter