zoukankan      html  css  js  c++  java
  • 一、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!

    温故而知新
  • 相关阅读:
    Js通用验证
    C#实现马尔科夫模型例子
    C# 生成pdf文件客户端下载
    Js跨一级域名同步cookie
    C#数据库连接池 MySql SqlServer
    关于Oracle row_number() over()的简单使用
    开发中mybatis的一些常见问题记录
    Java通过图片url地址获取图片base64位字符串的两种方式
    基于apache httpclient的常用接口调用方法
    通过jcrop和canvas的画布功能完成对图片的截图功能与视频的截图功能实现
  • 原文地址:https://www.cnblogs.com/krystal-xiao/p/14102961.html
Copyright © 2011-2022 走看看