接口测试实战2
1、接口测试实战
1.1接口测试对象
(1)产品在浏览器可以访问,那么可以即使没有接口文档,我们可以使用network or charles获取网络请求
(2)是服务,但是都是服务之间的调用,在浏览器无法访问
1.2图书管理系统
请求地址:
(1)查看所有书籍:/v1/api/books;
(2)添加书籍:/v1/api/books;
{
"author": "wuya",
"done": true,
"name": "Python接口自动化测试实战"
}
(3)查看具体的书:/v1/api/book/{{bookID}}
(4)删除书籍信息:/v1/api/book/{{bookID}}
1.3图书管理系统接口测试的流程
1.3.1 创建一个图书管理系统的集合
1.3.2添加获取书籍的测试用例
(1)添加测试用例,填写请地址、请求方法;
(2)给测试用例写断言,在postman下的test中书写,其内容如下:
一、定义一个变量来储存服务端返回的响应数据;
二、验证协议状态码;
三、验证业务状态码;
四、验证真正的响应数据;
(3)怎样获取响应数据
在JSON格式中,当value的数据结构:是一个数组[],数组里面是一个json{"a":1,"b":2,"c":3}时,我们可以通过如下方式获取数据:数学里面还是在计算机里面,索引都是从0开始的,那么我们想获取数组里面的JSON的数据,前提是进入到数组,如果是第一位数组,进入的方式是[0],以此类推,如果是第九位,那么是[8]。进入到数组后,获取JSON里面的数据,我们就可以通过.key,如获取3,那么K就是3,如下图:
1.2.3添加添加一本书籍的测试用例
(1)添加测试用例,填写请求地址、请求方法、请求参数,数据格式为JSON;
(2)给测试用例写断言,在postman下的test中书写,其内容如下:
一、定义一个变量来储存服务端返回的响应数据;
二、验证协议状态码;
三、验证业务状态码;
四、验证真正的响应数据,由于书籍的ID是动态参数,所以需要定义一个新的全局变量来获取书籍的ID。
1.3.4添加查看书籍的测试用例
(1)添加测试用例,填写请求地址、请求方法;由于需要查看的书籍的ID是一个动态参数,因此需要调用2.1.3定义的全局变量bookID来作为被查看的书籍的ID信息。
(2)给测试用例写断言,在postman下的test中书写,其内容如下:
一、定义一个变量来储存服务端返回的响应数据;
二、验证协议状态码;
三、验证业务状态码;
四、验证真正的响应数据。
1.3.5添加修改书籍的测试用例
(1)添加测试用例,填写请求地址、请求方法、请求参数,数据格式为JSON;由于需要查看的书籍的ID是一个动态参数,因此需要调用2.1.3定义的全局变量bookID来作为被查看的书籍的ID信息;
(2)给测试用例写断言,在postman下的test中书写,其内容如下:
一、定义一个变量来储存服务端返回的响应数据;
二、验证协议状态码;
三、验证业务状态码;
四、验证真正的响应数据;由于需要验证的书籍的ID是一个动态参数,因此需要获取到2.1.3定义的全局变量bookID来作为被查看的书籍输出的ID的值,使用的是Get an environment variable。
1.3.6添加删除书籍的测试用例
(1)添加测试用例,填写请求地址、请求方法;由于需要查看的书籍的ID是一个动态参数,因此需要调用2.1.3定义的全局变量bookID来作为被查看的书籍的ID信息。
(2)给测试用例写断言,在postman下的test中书写,其内容如下:
一、定义一个变量来储存服务端返回的响应数据;
二、验证协议状态码;
三、验证业务状态码;
四、删除操作的测试用例的断言中无需验证验证响应数据。
1.4动态参数的关联
API测试中参数关联这部分只能通过运行集合才能获得响应数据。所以运行创建的图书管理系统即可返回响应数据。
2、数据驱动
在自动化测试中(工具&代码),把共有的数据分离出来,这个思想就是数据驱动的思想。如图书管理系统中的请求地址和断言中验证协议状态码。
2.1请求地址分离
(1)复制图书管理系统的URL:http://101.43.158.84:5000,点击图书管理系统的集合,点击edit,将地址添加到Variables中,点击save保存即可;
在Variables中添加地址的操作步骤为:定义一个新的全局变量(如ur),将复制的地址粘贴到ur的值中。
(2)将图书管理系统中的测试用例的URL:http://101.43.158.84:5000用定义的全局变量ur来代替,运行集合即可。
2.2断言部分的分离
由于图书管理系统中的测试用例的断言里验证协议状态码的部分是一致的,所以可以将协议状态码的断言分离出来。
(1)复制协议状态码,点击图书管理系统的集合,点击edit,将协议状态码添加到tests中,点击save保存即可;同时也可以添加响应时间的断言进去。
(2)将图书管理系统中测试用例的断言中的协议状态码删除,运行集合即可。
3、newman的安装及使用
我们使用工具newman就可以生成测试报告(自动化测试的结果),使用newman的前提是需要安装node.js,通过node.js来安装newman的工具,安装newman的命令:
npm install -g newman --registry=https://registry.npm.taobao.org。
3.1 node.js的安装及验证
(1)下载安装包,按照流程安装。
(2)验证是否安装完成,打开控制台,输入npm,安装成功后生成的结果如下:
3.2 newman的安装及验证
(1)通过node.js来安装newman的工具,安装newman的命令:npm install -g newman --registry=https://registry.npm.taobao.org。
(2)打开控制台,输入newman验证安装是否成功,安装成功后生成结果如下:
3.3nweman的使用
应用newman生成测试报告(自动化测试的结果)的流程如下:
(1)将集合导出,保存在本地,如d盘,其操作步骤如下图所示:
(2)打开控制台,进入d盘,运行如下命令:newman run 图书管理系统.postman_collection.json。