我将以“与上一个不同”开始这个问题。我可以直接看到有人问了几乎相同的问题,但答案不是我要的。我会解释...
我需要测试网页中的自动填充搜索框。通常,我只会对HTML每次都包含一个额外的字母进行一系列的请求(这是与此类似的另一个问题的答案)。问题是,这不是页面的行为方式。每次输入字母时,它都会提交新的请求,但它会取消前一个请求而不是继续进行。因此,实际上真正到达HTTP 200响应的唯一响应是最后一个响应。
此博客包含我所看到的示例;
Autocomplete and request cancellation
但是大约一半显示我们的测试条件;
搜索后端也必须支持取消客户端。即使客户端断开连接,不支持取消的后端仍会继续处理请求。
我需要编写一个jmeter脚本,该脚本复制一系列已取消的请求,然后复制一个成功的请求,这样,当我查看后端时,我会看到多个正在运行的查询(错误)或仅是最后一个查询(良好)
编辑:我还遇到了一个后续问题,即如何在Web服务器日志中识别已取消的请求。好像我只看到单个请求,如果它们被允许完成(IE,如果我在字母之间停顿)。如果请求被取消,则不会将其记录在日志中。因此,我如何验证它们完全发生了?如果我们将日志导入到可视化工具中,将会丢失“取消”的请求。
答案 0 :(得分:0)
“请求取消”仅是closing the connection from the client side
在JMeter中实现它的最简单方法是设置响应超时,该设置位于HTTP Request采样器甚至更好的HTTP Request Defaults的“高级”标签下)
只需将此超时设置为低于前端中配置的阈值,JMeter将关闭连接,使后端“认为”自动完成请求已被中止,因为用户仍在输入。
演示: