接口测试之基本介绍
1、接口定义:接口统称为api,程序与程序之间的对接,交接;接口测试主要检测外部系统与系统之间以及内部各个子系统之间的交互点;主要是为了检验组件之间的数据的传递是否正确,同时接口测试还要测试当前系统与第三方系统的对接,比如:支付宝,微信,财付通,微信,银联
2、接口的作用:
a、当界面功能还没有出来时,测试人员可以做接口 测试(可以尽早介入测试)
b、接口测试能测试点一些功能测试不到场景(比如:金额为-数)
c、节约时间
3、接口如何去做?
目前项目前后端主要是基于http的接协议接口,所以测试接口时只要通过工具或代码模拟http请求发送与失败,来实现手工接口测试和自动化接口测试。
具体工具:postman 、jmeter
代码:python+request
4、接口联调?
联调测试:又称集成测试,组装测试,联合测试,子系统测试、部件测试。不同称呼而已,侧重点在于模块间接口的正确性性,各模块间的数据流和控制流是否按照设计实现其功能,以及集成后整体功能的正确性。
联调内容:介于白盒,黑盒之间,也是灰盒测试
5、接口测试在什么阶段做?
部署环境:
a、先接口测试,在功能sit测试
b、先功能测试,再接口测试 (接口自动,回归)
c、同时进行:一边功能,一边接口
6、什么是接口?
案例:http://cms.duoceshi.cn/cms/manage/login.do
查看方式:
查看:fn+12
fiddler:
7、如何判断一个前端或后端接口的bug
通过查看接口的请求参数和响应体(请求参数正确,响应体也正确,那就是前端bug,如果请求参数正确,响应体错误,那就是后端bug)
========================================================
二、接口测试基础
1、网络概念:在it领域,网络是信息传输,交换,接收,共享的虚拟平台,通过它把各个点,线,面的信息联系在一起,从而实现资源共享。
2、网络的四要素:
a、计算机
b、通讯设备和通讯线路
c、网络软件支持
d、实现资源贡献
3、网络发展阶段:
第一代 :远程终端连接
第二 代:局域网
第三代 :广域网
第四代:信息高速阶段 微信,视频
4、服务模式
isp : 互联网业务提供商( 如:电信,联通,移动)
icp :互联网内容提供商 ( 如:新浪,腾讯,抖音)
5、网络分类
a、按覆盖范围分为:
局域网、城域网、广域网
b、按拓扑结构分:
总线性、环型、星型、网状型
c、有线网、无线网、光纤网
6、网络协议(tcp/ip)(重点)
1、网络的语言(就像普通话)
2、osi 国际标准7层协议:
物理层=数据链路层网络层传输层会话层=表示层=应用层
3、我们五层:
物理层=数据链路层网络层传输层(tcp和udp)=====应用层(http)
7、常见的协议和端口?
a、http :超文本传输协议 端口:80
b、https:超文本安全协议 段落:443
c、http+ssl或tls 证书
d、http和https区别:
(1)端口号不一样:http:80 https:443
(2)https 相对http更安全;
(3)http协议请求速度要比https更快
(4)https要添加证书
(5)https比http更耗费资源
8、tcp传输控制协议
三次握手,四次挥手
9、其他端口的协议和端口
mysql 3306
tomcat 8080
nginx 80
xshell 22
ftp 21
smtp 25
10、常见的接口测试工具
(1)fiddler (调试工具)主要用来抓接口
(2)postman (一个接口测试工具)
(3)jmeter (接口测试工具和性能测试工具)
(4)charles 抓mac系统接口
11、接口类型:
(1)http 接口 (主要是http接口)
(2)rpc接口
(3)rmi接口
(4)webservice 接口
(5)restful 接口
12、接口测试的流程
(1)情况一:有接口文档的情况
步骤:
(一)从开发哪里拿到接口文档
(二)接口文档中有接口的参数,
(三)根据接口文档编写接口用例
(四)评审接口用例
(五)部署环境
(六)使用接口测试工具进行接口测试
(七)有bug就通过bug管理工具提交给开发修改
(八)修改好bug,在验证bug,在关闭bug
(九)在输出接口测试报告
(2)情况二:没有文档的情况
(一)通过fiddler抓包工具抓接口
(二)抓接口的参数,
(三)根据接口文档编写接口用例
(四)评审接口用例
(五)部署环境
(六)使用接口测试工具进行接口测试
(七)有bug就通过bug管理工具提交给开发修改
(八)修改好bug,在验证bug,在关闭bug
(九)在输出接口测试报告
=================================================================
接口的状态码:
常见的HTTP状态码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
200和304都可以认为请求成功,200还要readystatus为4,这两个符合就可以去加载了
404 - 请求的资源(网页等)不存在,请求故障
500 - 内部服务器错误,服务端故障
HTTP状态码分类
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
HTTP状态码分类
1 信息,服务器收到请求,需要请求者继续执行操作
2 成功,操作被成功接收并处理
3 重定向,需要进一步的操作以完成请求
4 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
HTTP状态码列表:
100 Continue 继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
200 OK 请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求
300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 请求要求用户的身份认证
402 Payment Required 保留,将来使用
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed 客户端请求中的方法被禁止
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时
409 Conflict 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突
410 Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412 Precondition Failed 客户端请求信息的先决条件错误
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理
415 Unsupported Media Type 服务器无法处理请求附带的媒体格式
416 Requested range not satisfiable 客户端请求的范围无效
417 Expectation Failed 服务器无法满足Expect的请求头信息
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理