欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

postman接口自动化测试实战

程序员文章站 2022-04-10 14:44:57
...

在网上找了一个接口来实践一下,因为接口地址每日有次数限制,就打码了。

接口文档:

名称 类型 必填
key String  
keyWord String 查找关键词
page Int 请求页数,默认page=1
rows Int 返回记录条数,默认rows=20,最大50
dtype String 返回结果格式:可选JSON/XML,默认为JSON
format Boolean 当返回结果格式为JSON时,是否对其进行格式化,为了节省流量默认为false,测试时您可以传入true来熟悉返回内容

 

重点在于测试用例的设计,在拿到接口文档后就可先写好用例,用例设计看这张图

postman接口自动化测试实战

首先发送一个正常的请求,看一下请求返回结果

postman接口自动化测试实战

主要是根据返回的json来设计一下tests验证的内容,简单的写了几个:

1.验证返回的状态码

2.格式化返回数据

3.验证返回的data中是否存在result字段,没有false

4.验证result中是否存在第二条数据,没有false

5.存在第二数据的话,则取第二条数据

6.判断第二条数据中的id是否取到,如果取到为true

7.将取到的id设为环境变量,供下个接口调用


pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// 将结果解析成json格式
var data = JSON.parse(responseBody);

// 判断返回的数据中result字段是否有值
if(data.result){
    
    tests['结果是否存在'] = true;
    // 判断result中是否存在第二个字典项
    if (data.result[1]){
        tests['是否存在第二条数据'] = true;
        // 取result中第二个字典项
        var a = data.result[1];
        // 判断字典里的id有没有取到
        if (a.id){
            tests['是否取到《'+a.name+'》的ID'] = true;
            // 将id设为环境变量,供下个接口使用
            pm.environment.set("tssc_id", a.id);
        }
        else{
            tests['是否取到《'+a.name+'》的ID'] = false;
        }
    }
    else{
         tests['是否存在第二条数据'] = false;
    }
}
else{
    tests['结果是否存在'] = false;
}

可以看到我们的用例全部通过

postman接口自动化测试实战

我们把刚才取到的id设为了环境变量{{tssc_id}}

用这个接口的返回值作为另一个接口的入参

postman接口自动化测试实战

可以看到是成功请求数据的

 

这是一个用例 我们可以使用runner来批量执行用例,将用例写在csv文件中

重点还是用例设计,随便写了几个仅做演示

postman接口自动化测试实战

postman中读取数据的时候,会将表名默认的认为是data。所以在读取数据的时候,比如读取keyword这一列的数据,则书写为data.keyword。postman会按照data.keyword的读取方式读取数据直到数据为空。

我们用Excel写完后,用notepad打开,转为utf-8格式,不然可能会乱码,postman识别不了

修改我们的接口参数

postman接口自动化测试实战

与文件的标题一致

我们是需要对表格中的数据进行参数化,所在在发送请求之前,我们要让postman能够读取到文件中的数据,在postman中,Pre-request Script中的语句postman会在请求发送之前执行,所以读取语句的操作,我们放在这里执行

postman接口自动化测试实战

我们打开runner进行设置环境变量,选择csv文件,可以点击preview预览

postman接口自动化测试实战

postman接口自动化测试实战

 

 

如果乱码的话会执行失败

最后我们点击run按钮进行测试,看一下结果

postman接口自动化测试实战

当然也可以点击名称分析与tests中验证的是否一致

postman接口自动化测试实战

到此为止postman的使用告一段落,大体满足日常使用,接着会介绍一下postman+newman+jenkins的使用