一、需求说明
- LiteMall 商城:litemall-vue
- 浏览器开发者工具抓包
二、实战思路
2.1 LiteMall 搜索接口测试用例设计
2.2 Postman 完成接口测试
2.2.1 保存har导入postman
-
先访问liteMall商城,开发者工具,切换NetWork面板;
-
在商城搜索框中,输入信息并回车,抓取数据后,查看list请求的相关信息:
- Request URL:https://litemall.hogwarts.ceshiren.com/wx/goods/list?keyword=抱枕&page=1&limit=10&categoryId=0
- Request Method:GET
-
选取X-Litemall-Token,查看登录的token信息;
-
把接口信息保存为
har
格式的文件,然后导入 postman;
-
在postman中,左侧边栏-Collections-import,导入上一步中的har文件。
2.2.2 修改测试集名称
- 修改导入测试集的名称为“LiteMall”:
2.2.3 创建接口测试用例
-
将引用测试集中的URL改为baseURL,校验请求是否成功。
-
为导入的接口测试用例添加断言。在tests面板中添加断言代码。
pm.test("响应状态码为 200", function () {
pm.response.to.have.status(200);
});
pm.test("响应体中包含【抱枕】", function () {
pm.expect(pm.response.text()).to.include("抱枕");
});
2.3 数据驱动
- 准备CSV格式的数据:第一行相当于是表头,对应了需要传入的变量名称,第二行开始就是具体的数据。
keyword,page,limit,categoryId,statusCode,expect
,1,10,0,200,list
,1,10,0,200,list
全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯,1,10,0,200,list
^{}`[],1,100,0,400,HTTP Status 400
- 或者准备json格式的数据。
[
{
"keyword": "",
"page": 1,
"limit": 10,
"categoryId": 0,
"statusCode": 200,
"expect": "list"
},{
"keyword": " ",
"page": 1,
"limit": 10,
"categoryId": 0,
"statusCode": 200,
"expect": "list"
},{
"keyword": "全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯全棉羽丝绒抱枕芯",
"page": 1,
"limit": 10,
"categoryId": 0,
"statusCode": 200,
"expect": "list"
},{
"keyword": "^{}`[]",
"page": 1,
"limit": 100,
"categoryId": 0,
"statusCode": 400,
"expect": "HTTP Status 400"
}
]
-
修改参数设置:把请求参数改为变量引用的形式
-
修改断言: 在断言中使用文件中的数据很方便,只需要使用
data
调用对应的字段就可以了。
pm.test("响应状态码符合预期", function () {
pm.response.to.have.status(data.statusCode);
});
pm.test("响应信息中包含预期内容", function () {
pm.expect(pm.response.text()).to.include(data.expect);
});
- 在测试集中定义数据变量
-
现在引用的这些数据都没有被定义,只有在传入数据之后才可以成功被引用,所以现在显示的都是红色。
-
为了不报错,可以在测试集当中先定义好,这样就不会报错。然后文件中的数据导入进来之后,由于 data 的优先级最高,所以文件中的值会直接被使用。
- 运行测试集,选择准备好的数据
- 在运行页面,点击Select File,选择前面准备好的CSV文件。
2.3.1 测试集的导入和导出
2.3.2 使用Cookies
2.3.3 鉴权方式
2.3.4 参数传递
2.3.5 设置鉴权
2.3.6 请求前脚本中发出登录请求
2.3.7 导出代码