在进行接口测试的时候,测试人员要通过查看测试用例返回的状态码来判断该接口是否通过测试,下面列举不同的http状态码反映的情况。
先列举我在项目运行时遇到过的几种http状态码:
200:是我最希望看到的http状态码,状态码200即证明请求成功,测试用例无错误,正常通过。
400:指的是客户端请求有误。这个时候可以去跟后端求证参数的情况,有很大可能是参数错误导致测试用例不通过。
404:指的是请求资源不存在。有可能是因为测试人员拿来测试的数据在后端数据库中已被删除。
500:指的是服务器出现了错误。这在我测试数据为空的测试用例时经常出现,一般是因为程序读取了一个null的属性,导致服务无法进行下去,后端会捕捉到这个错误并返回状态码500。
接下来是我在搜寻不同的http状态码问题中学到的其他状态码情况,大致概括如下:
1xx:表示服务端已经接收了请求,但是还在处理请求。
3xx:一般表示重定向,即代表客户端需要进行下一步的操作才能完成请求,并不代表程序错误。
401:请求未授权,例如在有些需要登录才能执行的操作中,服务端有可能返回该http状态码。
405:方法不允许。一般是在测试时有些请求要用GET来进行测试,但是测试人员选择了用POST就会出现该http状态码。
502:网关错误。有可能的原因是服务器在处理的链接太多,连接超时,后端服务崩溃了,导致服务器方面无法给出正常的响应。
503:Server Unavailable。表示服务器暂时处于超负载或正在进行停机维护,无法处理请求,有可能过一段时间会恢复正常。
504:网关超时。网关还在,但是后端服务可能由于各种原因(包括但不限于死循环等)导致无响应,网关接收不到请求。
总结:
一般情况下,http状态码为1xx、2xx、3xx的都为成功,4xx是客户端的问题。5xx是服务端的问题,找后端。