图像响应包含http状态代码200表示它是否被提取到客户端浏览器?

时间:2017-01-15 04:17:34

标签: image http web jmeter

我正在使用Jmeter进行负载测试,以确保大量并发用户能够从服务器请求图像文件。

我对图像的响应代码(.png)几乎没有疑问。

  1. 如果http状态代码为200,是否意味着图像从服务器完全提取到客户端?

  2. 响应代码为200,图片仍会在浏览器上加载?或者满载?

2 个答案:

答案 0 :(得分:1)

HTTP是有状态协议,因此JMeter发送请求并且必须等待响应。如果您获得http状态代码200,通常意味着请求已成功完成,因此,如果您的请求格式正确,则应表示图像已完全传输。

但是在某些情况下,您可能会收到HTTP状态代码200,这意味着请求已在传输级别成功完成,但在响应正文中,您将收到错误而不是图像。这就是为什么我建议使用MD5Hex Assertion,如果图像与预期的图像不同,它将自动使您的HTTP请求采样器失败。

  1. 在HTTP请求采样器的“高级”标签中,勾选“将响应保存为MD5哈希”框
  2. 将ND5断言添加为HTTP请求的子节点,并将图像的MD5校验和放入输入字段
  3. 就是这样,如果下载的图像MD5校验和与提供的不一致,HTTP请求采样器将失败

    JMeter MD5

  4. 有关在JMeter测试中有条件地设置通过/失败标准的详细信息,请参阅How to Use JMeter Assertions in Three Easy Steps文章

答案 1 :(得分:0)

以下是您的问题的答案:

如果HTTP状态代码为200,是否表示图像已从服务器完全提取到客户端?

是。一旦收到HTTP响应代码,就意味着完成了从服务器到客户端的响应传输。请通过TCP / IP模型。服务器和客户端将数据分成小的TCP数据包,将所有数据组合起来形成数据(传输层的责任)。添加Wireshark工具的屏幕截图以突出显示此行为。

响应代码为200,图片仍会在浏览器上加载?或者满载?

客户端(JMeter)完全接收到图像。但是JMeter不会在GUI上呈现输出,而不仅仅是图像的任何HTTP响应。因此,任何HTTP请求的响应时间都不包括页面呈现时间,这是我们应该考虑的主要因素。如果JMeter告诉HTTP响应时间是x seconds,那么从实际的最终用户角度来看,它是x+browser rendering time.

Wireshark图片:

enter image description here