用Postman管理测试用例
使用基本和ApiFox相同
==断言:==
断言实例
解释
1. pm.test() 函数用于定义一个测试用例,该函数接受两个参数:测试用例的名称和一个匿名函数,该匿名函数包含了测试用例的具体实现逻辑。 2. 匿名函数中的 pm.response.to.have.status(200) 语句用于检查 API 响应的状态码是否等于 200。如果状态码不等于 200,则测试用例失败,Postman 将输出测试失败的详细信息;如果状态码等于 200,则测试用例通过,Postman 将输出测试通过的信息。 因此,这段代码的目的是测试 API 响应的状态码是否等于 200,以确保 API 的正常运行。如果 API 返回的状态码不是 200,则测试用例将失败,Postman 将输出测试失败的详细信息。
==断言为JSON格式的数据:==
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); }); //解释 - pm.test() 函数用于定义一个测试用例,该函数接受两个参数:测试用例的名称和一个匿名函数,该匿名函数包含了测试用例的具体实现逻辑。 - 匿名函数中的 var jsonData = pm.response.json(); 语句用于将响应数据解析为 JSON 格式,并将其存储在 jsonData 变量中。 - pm.expect(jsonData.value).to.eql(100) 语句用于检查 jsonData 中的 value 属性是否等于 100。如果相等,则测试用例通过,否则测试用例失败。【断言指定的属性的类型不能改变】
全局变量和环境变量
如果我们想要测试两个接口, 前一个的输入就是等于后一个的输出, 那么我们就可以用一个全局变量来进行记录。
概念
**全局变量: **
全局变量是全局唯一的变量, 不可重复定义的变量
**环境变量: **
环境变量是 - 一个变量只能属于某个环境, 在某一个环境中不可重复定义 - 在环境与环境之间可以定义重复的变量 - 一个环境可以包含多个环境变量 - 常见环境分类: 开发环境、 测试环境、 生产环境
设置变量
**基本语法: **
全局变量: pm.globals.set("var_name", value); 环境变量 : pm.environment.set("var_name", value);
获取变量值:
基本语法:
全局变量: (两种) 1. {{var_name}} 2. var value = pm.globals.get("var_name"); 环境变量:(两种) 1. {{var_name}} 2. var value = pm.envirment.get("var_name");
postman请求前置脚本
postman断言工作的原理
应用场景:
**请求前置脚本 : **
也就是在请求发送(send)后, 请求前置脚本代码,第一时间被执行,在postman内部实际http请求之前。
how to used
通过设置我们需要的得到的变量 比如时间 var timestamp = new Date().getTime() 然后将变量设置为全局变量。
通过上述的方式 ,我们需要设置的变量就已经设置到了全局变量中了
**接下来就是获取: **
**获取结果: **
==postman的关联==
应用于多个请求之间, 有数据关联、或依赖关系时 。(用的较多)
==登录—令牌==
A、B 两个接口 1. 向B接口中发送请求, 获取数据 2. 将数据设置成为全局变量(环境变量)中, 3, A接口 获取全局变量(环境变量) 中的数据, 进行使用
**应用案列: **
执行测试
## 使用newman生成测试报告
先进行安装newman
然后通过下面的命令进行生成测试报告
postman读取外部数据文件(专业名称: 参数化)
如果说我们的请求只有请求体或者参数中的数据不同之外, 其他都一样, 那么我们就需要通过参数化 来将数据导入, 让其自动执行即可
两种数据文件格式
CSV : 数据组织形式简单, 适用于大数据的场合
缺点: 1. 不支持bool类型数据 2. 不支持多参、少参、错误参数的接口测试 3, 不支持复杂数据类型(如嵌套、列表等)
JSON:
优点 : 完全弥补了CSV格式的缺点 缺点: 1. 相同数据量, json格式的数据文件大小远大于csv格式的文件大小
导入文件
csv文件
- 创建XXX.csv文件
- 将数据写入csv文件中
- 在postman中, 选中使用数据文件的用例集
具体操作步骤:
json文件
- 创建xxx.json格式的文件
- 按照json格式的语法写入数据 ,但是要求json内容的最外层必须是[ ]包裹 , 内部是{ }
使用
一般的使用方式主要有两种
请求参数(请求头、 请求体、请求行)中使用
格式: 使用{{username}} 包裹 csv文件的字段名 或者 json文件的key
在代码中(断言 、 请求前置脚本)中使用
需要借助postman提供的关键字data后面 跟 csv文件的字段名 或者 json文件的key 格式: data.字段名
测试
https://cx.shouji.360.cn/phonearea.php?number=13399720059
1. 编写断言
1.首先选择哪种断言方式, 我们这里用到的是断言运营商是否为电信
2.导入模板
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); });
3.更改模板为我们需要的
我们需要的是 : 手机号运营商 是否为电信
==进行更改==
// 主要用来断言 手机号运营商 是否为电信 pm.test("断言手机号运营商", function () { var jsonData = pm.response.json(); //得到整个响应体 //todo 我们需要从整个响应体中找打一级标题data //然后从data中找打sp, 然后进行判断是否相等 pm.expect(jsonData.data.sp).to.eql("电信"); }); pm.test("断言 响应码", function () { pm.response.to.have.status(200); });
4.发送请求
5.导入数据 && 查看数据的响应
错误实例(send按钮无法读取文件)
==正确操作==
6.运行结果