1.0 使用界面以及步骤
1.1 请求中常见的数据传递格式
1.1.1 URL中请求字符串
数据类型:字符串
https://tieba.baidu.com/f?ie=utf-8&kw=%E7%BE%8E%E9%A3%9F&fr=search
请求方式:get
请求头:/(没有改)
1.1.2 表单
数据类型:表单
样例数据:
请求方式:post
请求头:
Content-Type:application/x-www-form-urlencoded
1.1.3 json
数据类型:json
样例数据:
````
{
"username":"xx",
"password":"asd123"
}
````
请求方式:post
请求头:
content-type:application/json
1.1.4 表单与json区别
类型 | 说明 |
---|---|
表单(form) | 最常见的post数据提交方式,默认浏览器数据提交方式 |
post | 目前最流行的数据传递方式 |
2.0 案例
2.1 查询参数案例
2.2 form表单
3.0 用例管理
3.1 创建测试集
标记:可以调整顺序
4.0 断言
4.1 定义
让程序代替人判断测试用例执行的结果是否符合预期的过程
4.2 postman断言
'小王'
'小王'去吃饭
'小王'去洗碗
'小王'去睡觉
'小王'
'小王'去吃饭
'小王'去洗碗
'小王'去睡觉
username = input('请输入用户名')
username去吃饭
username去洗碗
username去睡觉
4.3 常见的断言
4.3.1 断言响应状态码
样例代码:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test是postman对外提供的一种方法,名字是test
pm.test的功能是,编写cesium脚本时,如果方法内部处理内容出现错误也不影响后续自动化脚本的运行
4.3.2 断言响应数据是json
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
var 关键字,用来申明一个变量
pm.test("Your test name", function () {
pm.expect(pm.response.json().value).to.eql(100);
});
4.3.3 断言包含指定的字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
4.3.4 断言等于指定的字符串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
具体的应用:判断是否返回指定的json响应,例如判断是否登录成功
pm.test("判断用户名或者密码错误", function () {
pm.response.to.have.body('{"status":-2,"msg":"密码错误!"}');
});
注意点:引号的问题
4.3.5 断言响应头信息
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
4.3.6 断言请求成功
pm.test("断言请求成功", function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202,200]);
});
5.0 变量
5.1 映射在Python中
LEGB
5.2 postman中的全局变量
5.2.1 定义
全局变量是全局唯一的,不可以重复定义的变量,存在多个环境,例如开发环境,生产环境,测试环境。
5.2.1 设置
手动设置
注意:不允许重复定义变量变量
代码设置
pm.globals.set("全局变量的变量名", "全局变量的值");
在tests中设置完成,全局变量没有生效,请求发送之后,全局变量设置生效
5.2.2 获取
手动实现
{{全局变量名}}
代码实现
// 获取全局变量name对应的值
var name = pm.globals.get('name');
console.log(name)
5.3 postman中的环境变量
5.3.1 定义
环境和环境之间,可以定义重复的变量;一个环境可以包含多个环境变量;在当前环境中,不允许重复定义变量
5.3.2 设置(set)
手动设置
代码设置
pm.environment.set("subject", "测试");
5.3.3 获取(get)
手动实现
{{环境变量的变量名}}
代码实现
// 获取环境变量
var subject = pm.environment.get("subject");
console.log(subject)
5.3.4 注意点
类似python的LEGB原则,环境变量的优先级高于全局变量