LiteMall接口测试实战

一、需求说明

  • LiteMall 商城:litemall-vue
  • 浏览器开发者工具抓包

二、实战思路

image

2.1 LiteMall 搜索接口测试用例设计

image

2.2 Postman 完成接口测试

2.2.1 保存har导入postman

2.2.2 修改测试集名称

2.2.3 创建接口测试用例

pm.test("响应状态码为 200", function () {
    pm.response.to.have.status(200);
});

pm.test("响应体中包含【抱枕】", function () {
    pm.expect(pm.response.text()).to.include("抱枕");
});

2.3 数据驱动

  1. 准备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

  1. 或者准备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"
    }
]

  1. 修改参数设置:把请求参数改为变量引用的形式

  2. 修改断言: 在断言中使用文件中的数据很方便,只需要使用 data 调用对应的字段就可以了。

pm.test("响应状态码符合预期", function () {
    pm.response.to.have.status(data.statusCode);
});
pm.test("响应信息中包含预期内容", function () {
    pm.expect(pm.response.text()).to.include(data.expect);
});

  1. 在测试集中定义数据变量
  • 现在引用的这些数据都没有被定义,只有在传入数据之后才可以成功被引用,所以现在显示的都是红色。

  • 为了不报错,可以在测试集当中先定义好,这样就不会报错。然后文件中的数据导入进来之后,由于 data 的优先级最高,所以文件中的值会直接被使用。

  1. 运行测试集,选择准备好的数据

2.3.1 测试集的导入和导出
2.3.2 使用Cookies
2.3.3 鉴权方式
2.3.4 参数传递
2.3.5 设置鉴权
2.3.6 请求前脚本中发出登录请求
2.3.7 导出代码