一、postman接口自动化测试(个人的使用的分享)

  最近我在单位进行接口测试,由于开发给的文档相对粗略,于是自己根据已有的接口文档,进行汇总整理,然后接下来进行接口测试。我使用postman工具进行接口测试,期间遇到了一些使用问题,在这里与大家一起分享下,有遇到同样类似的问题同学可以参考下。

1、我们一般接口测试遵循RESTful架构,使用统一标准的HTTP方法如GET,PUT、POST以及DELETE等等。

2、接下来说使用postman工具的使用问题:

(1)在我们接口测试中,常常会遇到用户注册,创建表单,创建项目名称等等,但是参数定义一个名称之后,再次运行该接口,就会提示咱们该用户名或者项目名已存在的问题,这时候就需要自动随机生成类似这样的名称了,使用参数化方法。

-例1:注册用户名的接口:
参考方案:

 脚本如下:

pm.environment.set("random_username", ("0000" + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4));

-例2:创建项目接口
方案二:

 脚本如下:

//产生随机数字
function GetRandomNum(Min,Max)
{   
    var Range = Max - Min;   
    var Rand = Math.random();   
    return(Min + Math.round(Rand * Range));   
} 
//产生随机字符串
function randomString(length, chars) {
    var result = '';
    for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
    return result;
}
var num = GetRandomNum(3,12);
var rString = randomString(num, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
console.log("project_name is : "+rString);
//设置环境变量
pm.environment.set("project_name", rString);

3、一个接口send请求后,返回的信息,下一个接口需要调用该返回的接口信息做参数,这时候就需要在Tests中增加断言

例如:注册新用户,返回的信息中有个userID,可以在该接口请求中的Tests中定义一个参数,后续的接口可以反复调用该参数:

 脚本如下:

pm.test("Status code is 200", function () {
# 返回的状态码是否为200
    pm.response.to.have.status(200);
# 定义变量
    var jsonData = pm.response.json();
    pm.environment.set("userId", jsonData.data);
});

4、Token问题:我当前测试的接口都需要token验证,无token就报:wrong token问题

解决问题:可以在Authorization添加token信息,也可以在Headers中进行添加,我就直接在Authorization里添加了,我的类型是Bearer Token,直接在Token输入框填写Token信息就可以了。

5、定义变量优先级问题:优先级

collectionVariables > environment > globals

6、文件上传问题:
(1)文件很大时,需要压缩成多个小文件,分片上传
(2)我遇到一个问题:单个运行上传文件接口就可以请求正常,以测试集的方式批量运行多个接口方式,upload接口就会报错,找了好久都没发现问题,起初疑似文件有bug,到现在我才明白,不是人家有问题,是我有问题,我居然没有想到是我默认的路径有问题:
在Request Body里没有返回file参数:

解决方案:在File->Settings->Location中,修改下你所选择的文件路径,这样批量运行测试数据集,相关的upload接口就可以成功。

Thanks!

温故而知新
原文地址:https://www.cnblogs.com/krystal-xiao/p/14102961.html