接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作,以及系统之间的逻辑关系等。
通常的API接口用来获取数据,添加数据是基于什么样的消息? HTTP
(按F12可以看到接口消息)
通过HTTP请求消息进行的交互就称之为API接口,我们要进行的接口测试就是通过API接口直接对服务端进行的测试
测试对象是后端服务
通过后端服务直接构建HTTP的API接口消息对服务端进行测试(测试方法和测试对象)
通过API接口直接构建HTTP请求消息来触发后端服务的各种处理-----我们做的接口测试
- 对被测系统输入消息-检查输出消息
- 接口文档-接口消息的构成
- 测试工具-构造接口消息并发送接收(发送给服务端并且获取服务端的响应,并且要能够展示出这个响应,这样我们才能够知道这个服务端有没有问题)
通常来说,测试工具用postman比较多,今天学习的是自动化工具
python开发接口测试
①使用python语言也可以实现web API接口测试.
②根据测试用例
1、构造出相应的HTTP请求,发送给服务端
- 内置库httplib、urllib2
- 第三方库urllib3、requests(这个库特别适合做接口测试)、pyCurl
2、接受并检查响应消息
自动化的前提是首先得有测试用例
做接口测试的一个典型的难点就是请求消息体的构建,因为请求消息体有各种格式,要搞清楚你要测试的这个接口,他要发送的这个HTTP的请求消息它的消息体是什么格式
我们常见的HTTP请求消息的格式有哪些呢?表单格式、json格式、xml格式(最常见的三种消息体格式)
我怎么知道我现在要发送的http的接口消息是什么格式呢?
看接口文档(有文档不需要抓包,文档已经写得比包更清楚了,没有文档需要抓包)。
接口文档
这个请求体没有写格式,里面没有一个字说消息体是什么格式,如果他没有明确写的话,就要关注请求头里面的一个字段,叫Content-Type,这个字段就是HTTP协议里面用来标记消息体的格式的,这个里面写的表单格式(简称urlencoded格式),这种格式的参数是如下格式:
参数名=参数值&参数名=参数值
.
自动化其实就是把其中的检查点再把它检查出来
①检查返回值是不是0
res.json()是一个字典,检查里面的retcode是不是等于0
语法: retobj ['retcode']
②检查返回结果有没有包含刚刚创建的课程信息
思路:在添加课程之前先列出一遍课程,结果保存在list1中
再添加课程
添加完课程再列出课程,把第二次列出课程的结果保存在list2中
然后比较这两个列表,取出多出来的一门课程
(assert是确认后面的表达式是True)
最后运行
这就是接口测试用例的自动化