1. Postman 基础用法
请求中常见数据传递格式
数据类型 | 样例数据 | 请求方式 | 请求头(Content-Type) |
---|
字符串 | URL?username=huluwa&pass=123 | GET | / | 表单 | 见图 | POST | application/x-www-form-urlencoded | json | { “username”:“huluwa” “pass”:“123” } | POST | application/json |
- 说明:
- form表单:最常见的post提交数据的方式,浏览器默认数据提交方式
- json:目前最流行的数据传输格式
2. Postman 用例管理
-
作用:规范化管理接口上的大量测试用例 -
实现步骤
-
创建测试集 -New Collection
- Collection 可以被理解成是一个项目(系统),包含多个接口请求
-
创建目录 -Add Folder
-
添加请求 -Add Request
3. Postman 断言
1. 断言前置基础
序号 | 断言 | 代码片段 | 代码说明 |
---|
1 | 判定为真 | assertTrue(expr,msg=None) | 验证expr为true | 2 | 判定为假 | assertFalse(expr,msg=None) | 验证expr为false | 3 | 判定相等 | assertEqual(expected,actual,msg=None) | 验证expected==actual | 4 | 判定不相等 | assertNotEqual(first,second,msg=None) | 验证first != second | 5 | 判定为空 | assertIsNone(obj,msg=None) | 验证obj是None | 6 | 判定不为空 | assertIsNotNone(obj,msg=None) | 验证obj不是None | 7 | 判定包含 | assertIn(member,container,msg=None) | 验证member在container里面 | 8 | 判定不包含 | assertNotIn(member,container,msg=None) | 验证member不在container里面 |
- postman中的断言
- 使用JavaScript语言编写的,写在Postman的【Tests】标枪中
- 【Tests】中的脚本在发送请求之后执行,它会把断言的结果 (PASS/FALL) 最终在**【Test Results】**标签页中
- Postman的常用断言
- 断言响应状态码是否为200(Status code is 200)
- 断言响应体JSON数据校验(Response body:JSON value check)
- 断言响应体是否包含指定字符串(Response body: Contains string)
- 断言响应体是否等于指定字符串(Response body:Is equal to a string)
- 断言响应头是否包含指定的头信息(Response headers: Content-Type header check)
2. Postman 断言
1. 断言响应状态码
样例代码:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
说明:
pm.test是postman内置对象pm对外提供的一种名称为test的方法,他的功能是使用pm.test来编写测试脚本时,即使方法内部处理内容出现错误也不会影响后续自动化脚本的运行。
2. 断言JSON数据
示例代码:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
实例:
pm.test("断言success=true", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.success).to.eql(true);
});
pm.test("断言code=10000", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(10000);
});
pm.test("message=操作成功!", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("操作成功!");
});
3. 断言包含指定的字符串内容
示例代码:
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("更改成包含的内容");
});
4. 断言等于指定的字符串
示例代码:
pm.test("Body is correct", function () {
pm.response.to.have.body("更改成指定的字符串");
});
5. 断言响应头标签(了解)
示例代码:
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
4. 全局变量与环境变量
1. 概念
- 全局变量:作用范围是针对postman 下所有测试集均生效
- 环境变量:
- 只对选择了对应环境的测试集生效
- 开发环境、测试环境、线上环境
- 一套环境中,变量不能重复,但可以定义多个不重复的变量
2. 设置变量
设置全局变量
pm.globals.set("g_name", "jack");
设置环境变量
pm.environment.set("e_name", "Nauica");
3. 获取变量值
-
全局变量
- 请求参数中获取:{{g_name}}
- 代码中获取:
var value = pm.globals.get("g_name") -
环境变量
- 请求参数中获取:{{e_name}}
- 代码中获取:
var value = pm.environment.get("e_name")
5. Postman 关联
1. 关联介绍
2. 通过全局变量进行接口关联
案例1:
1.请求获取天气接口,http://www.weather.com.cn/data/sk/101010100.html
2.获取天气接口返回结果中的城市名称
3.请求百度搜索接口:http://www.baidu.com/s?wd={{城市名称}},城市名称即为天气接口获取并保存 到全局变量中的数据。
//保存天气接口的城市名称---全局变量
var jsonData= pm.response.json()
var city = jsonData.weatherinfo.city
pm.globals.set("g_city", city);
|