一、什么是接口?
应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口。通俗讲就是HTTP请求。
二、接口类型
接口一般分为两种:
1、程序内部的接口
2、系统对外的接口
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
接口的分类:
1、webserver接口
2、http api接口
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等
说明:json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成Python中的字典,key-value的形式,可以转换成JavaScript中的原生对象,可以转换成java中的类对象等。)
三、接口的组成
首先,接口文档应该包含以下内容:
1、接口说明
2、调用url
3、请求方法
4、请求参数、参数类型、请求参数说明
5、返回参数说明
结合接口文档可知,接口至少包含请求地址、请求方法、请求参数(入参和出参)组成,部分接口还有请求头header
说明:标头(header):是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔,一般存放cookie、token等信息
四、什么是接口测试?
接口测试是测试组件间接口的一种测试。
主要用于检测外部系统与系统之间,系统内部各子系统的交互点,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
简单举例就是通过URL像服务器或者其他模块等,传输我们想传输的数据,然后看看他们返回的是不是我们预期想要的。
五、接口测试的意义
1、越接近底层发现BUG,它的修复成本就越低,且性价比高
2、前端随便变,接口不变,后端不变,一般前后端分开开发
3、检查系统的安全性、稳定性
4、接口测试较为容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工成本和时间等
六、如何开展接口测试
--由于项目前后端只要是基于HTTP协议的接口,所以测试接口时主要通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
--也可以用接口自动化实现,利用代码和框架编写,发送请求用断言判断。
七、接口测试的策略
八、接口测试
1、接口测试类型
常见:get/post
get就是从服务器获取数据
post就是往服务器传参
2、http状态码
每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果
3、接口用例设计
1)通用接口用例设计
2)根据业务逻辑来设计用例
资料参考:
1、http://blog.51cto.com/xqtesting/2148822
2、https://www.cnblogs.com/feng0815/p/7509541.html
3、http://www.51testing.com/html/57/n-4421257.html
4、http://www.51testing.com/html/46/n-3722746.html
原文地址:https://www.cnblogs.com/fangjiantan/p/10035704.html