我正在练习负载测试并尝试 JMeter。作为示例应用程序,我使用 Web Tours。我记录了进行航班预订的步骤,对用户会话进行了关联,并添加了一些响应断言以确保我从服务器获得正确的答案。
当我尝试在 Web Tours 管理页面中激活错误行为时,存在类似的行为(例如,将模拟负载问题的服务器概率设置为 100%)。当我手动测试应用程序时,我收到了预期的错误 (http 503)。当我重播脚本时,每个步骤都以 http 200 结束。 我录制的另一个将用户添加到应用程序的脚本工作正常。当我重播时会添加用户。
你知道我做错了什么吗?
获取 HTTP 状态代码 200 并不一定意味着您的测试正在执行其应该执行的操作。
我建议使用JMeter Assertion添加另一层通过/失败标准,特别是Response Assertion来检查服务器的响应是否包含预期值和/或不包含错误。
因此,首先确保您可以成功创建预订,然后使用浏览器找到它,因为如果不能,则可能是被测系统的预期行为或存在功能缺陷。在这种情况下,从 JMeter 的角度来看,您无能为力。
如果您可以使用真实浏览器创建预留,使用Fiddler或Wireshark等嗅探器工具比较来自JMeter和来自真实浏览器的请求,则请求需要完全相同(除了动态参数需要相关)。一旦您修改 JMeter 配置以发送与真实浏览器相同的请求,您应该会得到相同的行为。
而且看起来你已经记录了一些图像,这不是你应该做的事情,因为真正的浏览器使用并发线程池下载图像、脚本、样式等,在你的情况下,你是按顺序获取它们并且它完全生成不同的网络足迹。您应该删除这些请求并配置 JMeter 以使用 HTTP 请求默认值
获取嵌入资源