postman接口自动化测试实战

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

接口文档:

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

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

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

主要是根据返回的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;
}

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

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

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

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

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

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

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

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

修改我们的接口参数

与文件的标题一致

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

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

如果乱码的话会执行失败

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

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

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

猜你喜欢

转载自blog.csdn.net/u013434475/article/details/88119850