文章目录
前言
- 使用Postman管理、执行测试用例生成测试报告 重点:管理测试用例Collections、Postman断言、全局变量和环境变量、Postman关联、使用newman生成测试报告
提示:以下是本篇文章正文内容,下面案例可供参考
一、Postman高级用法
1. 管理测试用例Collections
- 创建collections
- 修改用例集名称
- 添加请求
- 添加一个http请求
- 创建用例集、子目录和请求
2. 测试用例集导入、导出
- 导出用例集
- 导入用例集
3. Postman断言
- 断言:让程序判断预期结果和实际结果是否一致
- 特点- Postman的断言使用JavaScript语言编写,写在“Tests”标签页- Tests中的脚本在发送请求后执行,会把断言的结果(PASS/FAIL)最终在’Test Results’标签页中展示
- Postman常用断言1. 断言响应状态码- 在Test标签中,选中Status code: Code is 200,生成对应代码- 适当调整test()方法参数1,和匿名函数中的预期结果。- 点击send按钮,发送请求,执行断言代码。- 查看断言结果。
//断言响应状态码是否为200
pm.test("Status code is 200",function(){
pm.response.to.have.status(200);//这里的200是预期结果});pm:代表postman一个实例
test():是pm实例的一个方法,有两个参数
参数1:在断言结束后,给出的文字提示。可以修改。"Status code is 200"
参数2:匿名函数。
pm.response.to.have.status(200);//postman的响应结果中应该包含状态码200
- 断言响应体是否包含某个字符串Response body: Contains string
//判断响应体中是否包含指定的字符串
pm.test("Body matches string",function(){
pm.expect(pm.response.text()).to.include("string_you_want_to_search");});pm:代表postman一个实例
test():是pm实例的一个方法,有两个参数
参数1:在断言结束后,给出的文字提示。可以修改。
参数2:匿名函数。
pm.expect(pm.response.text()).to.include("string_you_want_to_search");//postman期望响应文本中包含xxxxx字符串,"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");});pm:代表postman一个实例
test():是pm实例的一个方法,有两个参数
参数1:在断言结束后,给出的文字提示。可以修改。
参数2:匿名函数。
pm.expect(pm.response.text()).to.include("string_you_want_to_search");//postman的响应中应该有响应体xxx,"response_body_string"为预期结果,可修改
- 断言JSON数据****Response body:JSON value check
//断言JSON的响应结果
pm.test("Your test name",function(){var jsonData = pm.response.json();//var jsonData用js语法定义一个变量。jsonData就是变量名。pm.response.json()代表响应的json结果
pm.expect(jsonData.value).to.eql(100);//pm预期json结果的中key的值等于xxx.其中100代表预期结果,可以修改});//举例:response.json();/*
{
"success":true,
"code":10000,
"message":"操作成功",
"data":"95c78d75-721c-40fb-b2d5-742fea42cbd5"
}
jsonData.value的值取:success、code、message、data
*/
- 断言响应头Response headers:Content-Type header check
//断言响应头
pm.test("Content-Type is present",function(){
pm.response.to.have.header("Content-Type");//响应头中包含Content-Type});//可以断言响应头对应的value:pm.response.to.have.header("Content-Type", "application/json;charset=UTF-8");
- Postman断言工作原理
4. 全局变量和环境变量
- 全局变量定义- 全局变量是全局唯一的,不可重复定义的变量
- 环境变量定义- 一个变量只能属于某个环境(生产环境、开发环境、测试环境),在某一个环境中变量不可重复定义- 在环境与环境之间可以定义重复的变量- 一个环境可以包含多个环境变量- 常见环境分类:开发环境、测试环境、生产环境
- 设置变量- 全局变量- 手动设置- 代码设置:pm.globals.set(“var_name”, value);- - 环境变量- 手动设置- 代码设置:pm.environment.set(“var_name”, value);-
- 获取变量值- 全局变量1. 请求参数中获取(postman界面):{{var_name}}2. 代码中获取:var value=pm.globals.get(“var_name”);- 环境变量1. 请求参数中获取:{{var_name}}2. 代码中获取:var value=pm.environment.get(“var_name”);
5. Postman请求前置脚本
- 在send按钮点击后,请求前置脚本代码,第一时间被执行。在postman内部实际http请求之前。
假设,这样一种场景:
调某接D时,要输入“时间戳”,如果输入的“时间戳"的绝对值,超过标准时间10分钟。则不允许调用。
- 时间戳- 对应绝对时间,如从1970年1月1日00:00:00到现在所经历的秒数。
一天:86400秒
51年6月(180)9天–1,624,665,600秒
- 案例
调用百度首页接口,传时间戳给服务器
实现步骤:
- 在Pre-request Script标签页中,添加代码。拿到时间戳。写入全局变量
//获取时间戳数据值var timestamp =newDate().getTime();//将时间戳设置到全局变量
pm.globals.set("glb_timestamp", timestamp);
- 点击Send按钮,发送请求。请求发送前执行上述代码。写入全局变量
- 查看写入的变量
- 在请求参数中(界面)使用全局变量({{glb_timestamp}})
- 在Postman控制台中查看发送http请求 view–>show Postman Console
- 工作原理
6. Postman关联
介绍:应用于多个http请求之间,有数据关联或依赖关系时
实现步骤
A接口 依赖 B接口的数据
- 向B接口发送http请求,获取数据
- 将数据设置至全局变量(环境变量)中
- A接口获取全局变量(环境变量)中数据值,进行使用
案例
请求 获取天气接口,提取响应结果中的城市,将城市名给百度搜索接口使用
实现步骤:
- 创建用例集,分别创建 查询天气 请求 和 百度搜索的请求
- 在查询天气请求Test中,编写代码获取城市名,写入全局变量
//获取全部响应结果var jsonData = pm.response.json()//从响应结果中获取城市名var city = jsonData.weatherinfo.city
//将城市名写入到全局变量
pm.globals.set("glb_city", city)
- 点击Send按钮,发送请求,查看设置的全局变量
- 修改百度搜索请求,使用全局变量,按城市名搜索 http://www.baidu.com/s?wd={{glb_city}}![在这里插入图片描述](https://img-blog.csdnimg.cn/61d842978c36460eb513698d60d1e661.png)
7. 批量执行测试用例
二、Postman测试报告
1. 安装newman
2. 使用newman生成测试报告
- 批量执行测试用例集
- 导出测试集数据(得到xxx.json文件)
- 在 终端 中执行测试,生成测试报告 使用newman命令,运行导出的测试集脚本,打开cmd输入: newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export 测试报告名.html eg: newman run demo.postman_collection.json -r html newman run demo.postman_collection.json -r html --reporter-html-export report.html 命令说明 - run xxx.json:表示要执行的postman脚本,即导出的测试集数据- -e source:用来指定环境变量文件的路径- -d source:用来指定测试数据文件的路径
注: 如果添加 -r html 就报错 说明newman-reporter-html 安装失败
网课来源
【黑马测试】测试基础604-631。
版权归原作者 qq_50801187 所有, 如有侵权,请联系我们删除。