Postman使用
接口测试准备
1、项目部署
2、查看接口文档
3、设计和编写测试用例
4、执行测试用例
5、接口缺陷管理与跟踪
1、项目部署
所需文件下载:https://lyang.lanzoui.com/iSjApr9i9ra
学生管理系统环境搭建
1、根据素材 学生管理系统项目 中的启动说明进行操作
安装python环境 推荐python3.5以上版本
安装依赖模块:pip install -r requirements.txt -i https://pypi.douban.com/simple
启动命令:python run_server.py
默认端口是8000,地址本机ip
2、测试环境是否正确
浏览器输入 http://127.0.0.1:8000/api/departments/ 只要有相关数据即可
提示:使用sqlitestudio工具打开sqlite3数据库查看对应的数据
2. 查看接口文档
说明:这里只展示了部分接口,具体的接口信息以开发的接口文档为主。
3. 设计和编写测试用例
4. 执行测试用例
根据编写好的测试用例进行执行,验证功能是否满足需求。
5. 接口缺陷管理与跟踪
在执行测试用例时,实际结果与预期结果不符时,则需要向开发提bug,待开发修复后,测试再进行回归测试,验证bug是否解决,如果解决则关闭该bug,否则重新打开,留意跟踪该bug,直到正确修复为止。
Postman介绍
Postman是一款非常流行的接口调试工具,它使用简单且功能强大。在企业中,不仅测试人员会使用,而且开发人员也会经常使用。
Postman主要特点:
- 简单易用的图形化界面
- 可以保存接口请求的历史记录
- 使用测试集Collections可以更有效的管理组织接口
- 可以在团队之间同步测试接口,对测试接口可以进行导出和导入
Postman下载及安装
postman官网下载地址: https://www.postman.com/downloads/
postman 的入门示例
需求:使用postman访问百度http://www.baidu.com,并查看响应结果
实现步骤:
- 新增测试接口页面
- 设置请求方式
- 输入接口地址
- 点击发送请求
- 查看响应结果
postman的基本使用
postman的基本使用 - 查
案例:
需求:
访问百度的搜索接口,通过查询字符串的方式传递搜索的关键字python,并查看响应结果
请求路径:http://www.baidu.com/s?wd=python
实现方式:
请求方式:GET
请求路径:http://www.baidu.com/s
传参方式:查询字符串(wd=python)
实现步骤:
新增测试接口页面
设置请求方式为GET
输入请求路径
设置请求数据(查询字符串)
点击发送请求
查看响应数据
postman的基本使用 - 增
案例
需求:
根据学生管理系统的接口文档,增加一条学生信息
实现分析:
请求方式:POST
请求路径:http://127.0.0.1:8000/api/departments/
请求数据:请求体-JSON提交
{
"data":[
{
"dep_id":"T05",
"dep_name":"java学院",
"master_name":"Test-Master",
"slogan":"好好学习,天天向上"
}
]
}
实现步骤:
新增测试接口页面
设置请求方式为POST
输入请求路径
设置请求数据(请求体-JSON提交)
点击发送请求
查看响应数据
查看数据库中相应信息
postman的基本使用 - 改
案例
需求:
根据学生管理系统的接口文档,将dep_id为T01的学员的学院名称改为软策教育
实现分析:
请求方式:PUT
请求路径:http://127.0.0.1:8000/api/departments/T01/
请求数据:请求体-JSON提交
{
"data":[
{
"dep_id":"T01",
"dep_name":"软策教育",
"master_name":"王大嘴",
"slogan":"嘴大吃四方"
}
]
}
实现步骤:
新增测试接口页面
设置请求方式为PUT
输入请求路径
设置请求数据(请求体-JSON提交)
点击发送请求
查看响应数据
查看数据库中相应信息
postman的基本使用-删
案例
需求:
根据学生管理系统的接口文档,将dep_id为T111的学员数据删除
实现分析:
请求方式:DELETE
请求路径:http://127.0.0.1:8000/api/departments/T111/
实现步骤:
新增测试接口页面
设置请求方式为DELETE
输入请求路径
点击发送请求
查看响应数据
查看数据库中相应信息
全局变量&环境变量
环境变量
在实际的测试过程中,我们拥有测试环境和生产环境,此时我们设置两个环境变量,分别是测试环境变量和生产环境变量,方便我们能够在不同环境下进行测试。
说明: host变量表示测试环境的ip地址+端口号。
添加环境变量:
环境变量使用操作示例:
切换到指定的环境
通过来获取设置环境变量的值
这里我设置的是host变量名
全局变量
接口在任何环境下都可以引用的变量
添加全局变量:
全局变量使用操作示例:
访问全局变量的方式和访问环境变量的方式一样,都是通过来完成
不受环境影响(在测试环境和生成环境下都能使用全局变量)
Postman的高级用法
测试集
测试集实现步骤:
1. 创建测试集 - New Collection
Collection可以理解成一个项目,这个项目下可以包含多个模块
2. 创建目录 - Add Folder
Folder 可以理解成项目中的模块,好比一个文件夹。
3. 添加请求 - Add Request
在每个模块中添加接口请求
4. 保存请求 - SAVE REQUEST
Postman断言
断言:让程序判断预期结果和实际结果是否一致。
Postman断言使用说明:
postman的断言是使用JavaScript语言编写的,写在"Tests"标签里。
Tests中的脚本在发送请求之后执行,会把断言的结果(PASS/FAIL)最终在"Test Results"标签页中展示
Postman断言的具体使用:
选择断言代码片段
在Tests输入框的右侧配置了一些常用的断言代码片段,点击后自动填写到Tests输入框中。
断言代码片段介绍
Status code:Code is 200
// 判断响应状态码是否为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
Response body:Contains string
// 判断响应体中是否包含指定的字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
Response body:Is equal to a string
// 判断响应头数据是否等于指定的字符串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
Response body:JSON value check
// 校验响应的json数据
pm.test("Your test name", function () {
var jsonData = pm.response.json();
// 比如: 获取学生管理系统中的所有departments信息
// jsonData对象来获取count属性,判断是否等于31
pm.expect(jsonData.count).to.eql(31);
});
Response hearders:Content-Type header check
// 判断响应头中是否包含指定的头信息
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
测试结果:
PASS:通过
FAIL:失败
Postman关联
当请求之间有依赖关系,比如上一个请求的结果是另一个请求参数,此时就需要用到关联处理。
实现方式
要获取某个请求的响应结果数据,可以通过在"Tests"标签页中编写JavaScript脚本来实现
// 获取json格式的响应数据
var jsonData = pm.response.json()
定义变量接收从响应数据中取出的值
// 定义变量,接收cityvar city = jsonData.weatherinfo.city;
多个请求之间可以使用全局变量来传递数据
// 把数据保存到全局变量中pm.globals.set('city', city);
获取某个全局变量的值:
案例
请求获取天气的接口: http://www.weather.com.cn/data/sk/101010100.html
获取返回结果中的城市名称
调用百度搜索接口: http://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数
实现步骤截图
1、在第一个请求的"Tests"标签页中编写Javascript脚本
2、在第二个请求中使用全局变量
批量执行测试用例:
要想批量执行测试用例,需要先把接口请求添加到测试集中,使用运行测试集的方式就可以实现批量运行测试用例。
操作步骤:
1、点击测试集中的"Run"按钮,批量运行测试用例
2、弹出Collection Runner窗口,点击运行按钮
3、查看测试结果
接口参数化
应用场景:在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要 不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目的是为了模拟真实的用户场景,需要模 拟不同的账号,这里就需要参数化的过程, 还有批量添加一些有效的部门信息,也可以使用接口参数化
实现步骤:
1、新建csv文件,填入数据
注意:用文本编写csv文件时使用“,”进行分隔
2、运行测试用例时,在Data中选择上传文件
Postman测试报告
Newman
Newman是一款基于nodejs开发的可以运行Postman脚本的工具,并可以生成测试报告
环境准备
安装nodejs
下载地址:http://nodejs.cn/download/
如果下载的是安装包,下载后双击安装即可
如果下载的是压缩包(.zip),解压到某个目录后,需要配置环境变量
校验:打开cmd,输入node -v,看到输出node的版本信息,即代表安装成功
安装newman
打开cmd输入 npm install -g newman
校验:安装完成后,输入newman -v 命令查看版本信息,检测是否安装成功
安装 newman-report-html
打开cmd输入 npm install -g newman-reporter-html
导出测试用例集数据
选择对应的测试集右击选择Export进行导出
执行测试
使用newman命令,运行导出的测试集脚本,打开cmd输入 newman run demo.json -r html --reporter-html-export report.html
查看测试报告
命令运行完成后,如果不设置 --reporter-html-export参数,会在当前目录下生成一个名字为newman 的文件夹,打开就可以看到生成的html测试报告