----转载,原文链接:https://blog.csdn.net/weixin_42007999/article/details/105683260

在使用 HttpRunner 进行接口测试的时候,最常用到的一类断言方式就是判断接口返回的响应状态码,所以这里对各类型的 HTTP 响应状态码进行简要介绍。

HTTP 状态码(HTTP Status Code):是用以表示服务器对请求进行响应后,表示结果状态的3位数字代码。被置于响应头的第一行(也叫响应行)中。以 Firefox 浏览器自带网络功能抓包为例,在“状态码”一项中可以清晰看到。状态码后面紧跟的是“消息短语”,可以看成对状态码的最精简解释说明。

如图,状态码:200, 消息短语:OK,代表此请求的响应是成功完成的。

HTTP 的响应状态码主要分为五类,分别为从1到5开头的三位数字:

1xx: 代表消息
2xx: 代表成功
3xx: 代表重定向
4xx: 代表客户端错误
5xx: 代表服务器端错误

在进行接口测试的过程中,我们涉及比较多的有以下几个:

1. 200 OK

请求成功,服务器已经正常响应。
注意:返回 200 不一定代表得到的就是我们预期的结果页面,如登录成功打开系统桌面,此时返回200状态码,但是不小心输入了错误的用户名和密码,登录失败仍然回到登录页面,但此时服务器返回响应的状态码还是 200,说明这个过程中服务器已经做完它认为正确的事情,而不是代表业务的正确性。所以在测试的时候,仅仅依靠200这个状态码进行断言是不充分的。
HttpRuner 断言写法: - eq: [status_code, 200]

2. 301/302/307 永久移动/临时移动/临时重定向

被请求的资源已经不在你请求的URL上了,需要去另外一个URL中获取。
注意:HttpRunner 的内核实际是 requests 模块,而 requests 模块在发送请求的时候,会默认自动完成重定向的操作,此时就无法从重定向前的页面提取数据了。
解决方法,在 request 关键字下增加: allow_redirects: False

3. 304 未改变

如果浏览器端的缓存文件已经过期,则浏览器自己无法自己决定该文件是否还可以继续使用,此时需要向服务器发送请求来询问。服务器判断此段时间以来,该文件是否被改变过,如果没有改变过,则说明浏览器端的缓存文件依然可以使用,就向浏览器发送 304 消息(只有响应头没有响应体),浏览器收到后直接读取缓存文件内容呈现到页面。当然,如果服务器判断该文件被修改过,会重新向浏览器发送 200 消息(重新传送最新文件)。

4. 401 未经许可,认证失败

请求失败,请求资源的时候没有通过认证,鉴权失败了。

注意:碰到401基本上属于鉴权的问题,可以在请求头中附加 Authorization 认证信息或者是从前一个页面的响应中提取 cookie/token 等相关内容,再附加到新的请求中去。

5. 404 未找到

请求失败,请求的资源在服务器上没有找到。

注意:一般发生这种错误,不意味着服务器端代码的错误,往往是由于自己编写的 URL 或者文件名称错误,需要自行检查。

6. 500 服务器内部错误

服务器无法完成对请求的处理。一般来说,服务器端的源代码出现错误时会出现这个问题。
————————————————
版权声明:本文为CSDN博主「捉虫客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42007999/article/details/105683260

HTTP响应状态码(404,500……)相关推荐

  1. Spring Cloud Gateway 自定义网络响应状态码(401,500,503等等)

    近几天打算做一个网关校验的东西,但是发现在使用Gateway的过滤器的时候,没找到设置响应的状态码,网上找了好多也没找到emmmm,不过还好解决了. 直接贴上代码,下面有给出: package com ...

  2. HTTP简介、请求方法与响应状态码

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...

  3. HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头

    http://blog.csdn.net/qxs965266509/article/details/8082810 用于HTTP请求中的常用请求头字段 Accept:用于高速服务器,客户机支持的数据类 ...

  4. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  5. python爬虫常见报错_Python爬虫常见HTTP响应状态码详解

    在使用Python进行网页数据抓取时,经常会遇到无数据返还或错误等异常,这个时候可以通过status_code命令来查看获得http请求返回的状态码,以便查找原因并制定相应的解决方案.import r ...

  6. 02-HTTP的请求方法以及响应状态码

    1.   HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...

  7. http响应状态码列表

    1)响应状态码用于表示服务器对请求的各种不同处理结果和状态: 2)响应状态码分为5类: 类1)100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程: 类2)200~299 ...

  8. fastapi 响应模型 / 响应状态码 / 表单参数

    文章目录 1. response_model 2. 添加输出模型 3. 响应模型编码参数 4. response_model_include 和 response_model_exclude 5. 代 ...

  9. http响应状态码大全

    http响应状态码大全 转:http://blog.sina.com.cn/s/blog_4ae187490100x9u7.html http状态返回代码 1xx(临时响应) 表示临时响应并需要请求者 ...

最新文章

  1. 2fsk基于matlab的仿真,基于matlab的2ask、2psk、2fsk的仿真
  2. php select 多级联动,select框多级联动
  3. Android自定义样式
  4. VC++ 禁止WebBrowser网页跳转时发出的声音和禁止网页上的文字被选择
  5. 天刀帐号角色服务器查询系统,天涯明月刀手游角色交易介绍-角色转移系统
  6. 计算机修改了服务如何恢复,怎么修复MSDTC服务?
  7. 倾斜摄影Smart3D建模培训视频 附文档数据下载
  8. MCU芯片通信接口设计
  9. Ubuntu修改Mac地址
  10. 这样学编程,直接原地起飞啊!
  11. Java 反射机制:(三)类的加载
  12. 苦尽甘来 一个月学通JavaWeb(六 XML)
  13. 链塔区块链数据平台周报:新增富豪榜、项目点评、收藏等功能 | 链塔数据
  14. Android 之 自动拨号
  15. [AV1] interpolation
  16. 【苹果群发】苹果推iMessage接口筛选应用程序利用密钥箱生成CSR文书
  17. 2020web前端学习路线(附全套前端视频教程+教学大纲
  18. Redis运行环境搭建
  19. 30岁的女程序员该何去何从
  20. 转:如何选择 Excel 中的数据列,然后将数据粘贴到文本文件中?

热门文章

  1. [C语言]计算sin值填空 :阅读下面程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。然后上机运行程序。利用公式,计算sin x(x为弧度值)的值,直到最后一项的绝对值小于。。。
  2. 如何安装python3.80_编程零基础应当如何开始学习 Python?为80%迷茫的人指明道路...
  3. python长整型怎么用_Python整型:布尔型、标准整型、长整型操作实例
  4. javaWeb进销存后台管理系统
  5. 软件测试--QQ状态(PICT测试工具生成决策表)
  6. JS创建对象的三种方法
  7. CentOS内核版本升级至4.4
  8. PRG100A-AA路由破解
  9. 2022081班李亚楠20220927
  10. linux mint下安装企鹅输入法