zoukankan      html  css  js  c++  java
  • 个人技术总结——postman的使用(使用数据变量多次运行集合)

    1、技术概述

    • 是一款功能强大的网页调试与发送网页HTTP请求的工具用于接口调试、接口测试
    • 学习该技术的原因——测试项目接口正确性,创建 + 测试:创建和发送任何的HTTP请求,请求可以保存到历史中再次执行
    • 技术难点全英文环境对于直接上手这款工具还是有一定难度的

    2、技术详述

    在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时完成功能模块的测试。
    做为后端开发人员,要求独立开发完成某个接口后,开发人员自己需要先测试通过后再提交给测试人员进行测试,否则会出现到测试人员哪里业务流程根本就走不通,或者BUG会过多的情况等。

    • 首先一定要熟悉这个东东的界面啦

    • 响应 示例: 这里会有请求的响应状态码,响应时间,以及响应大小

    • 接口请求

      • get请求

      • post请求

        • POST请求一:表单提交
        • POST请求二:json提交
        • POST请求三:xml提交
      • 脚本测试

        在编写测试脚本时不需要记住那么多语法,可以通过编辑器旁边列出常用的代码段来简化此过程,可以选择要添加的代码段,并将相应的代码添加到测试编辑器中。

        1. 清除一个全局变量
             Clear a global variable
            对应脚本:
            postman.clearGlobalVariable("variable_key");
            参数:需要清除的变量的key
         
        2.清除一个环境变量
            Clear an environment variable
            对应脚本:
            postman.clearEnvironmentVariable("variable_key");
            参数:需要清除的环境变量的key
         
        3.response包含内容
            Response body:Contains string
            对应脚本:
            tests["Body matches string"] =responseBody.has("string_you_want_to_search");
            参数:预期内容
         
        4.将xml格式的response转换成son格式
            Response body:Convert XML body to a JSON Object
            对应脚本:
            var jsonObject = xml2Json(responseBody);
            参数:(默认不需要设置参数,为接口的response)需要转换的xml
         
        5.response等于预期内容
            Response body:Is equal to a string
            对应脚本:
            tests["Body is correct"] = responseBody === "response_body_string";
            参数:预期response
         
        6.json解析key的值进行校验
            Response body:JSON value check
            对应脚本:
            tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
            参数:test替换被测的值,args替换被测的key
         
        7.检查response的header信息是否有被测字段
            Response headers:Content-Type header check
            对应脚本:
            tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
            参数:预期header
         
        8.响应时间判断
            Response time is less than 200ms
            对应脚本:
            tests["Response time is less than 200ms"] = responseTime < 200;
            参数:响应时间
         
        9.设置全局变量
              Set an global variable
              对应脚本:
              postman.setGlobalVariable("variable_key", "variable_value");
              参数:全局变量的键值
         
        10.设置环境变量
              Set an environment variable
              对应脚本:
              postman.setEnvironmentVariable("variable_key", "variable_value");
              参数:环境变量的键值
         
        11.判断状态码
              Status code:Code is 200
              对应脚本:
              tests["Status code is 200"] = responseCode.code != 400;
              参数:状态码
         
        12.检查code name 是否包含内容
              Status code:Code name has string
              对应脚本:
              tests["Status code name has string"] = responseCode.name.has("Created");
              参数:预期code name包含字符串
         
        13.成功的post请求
              Status code:Successful POST request
              对应脚本:
              tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
         
        14.微小验证器
               Use Tiny Validator for JSON data            
               对应脚本: 
                var schema = {
                 "items": {
                 "type": "boolean"
                     }
                 };
                var data1 = [true, false];
                var data2 = [true, 123];
                console.log(tv4.error);
                tests["Valid Data1"] = tv4.validate(data1, schema);
                tests["Valid Data2"] = tv4.validate(data2, schema);
                参数:可以修改items里面的键值对来对应验证json的参数
        
    • 可以在Collection Runner中使用数据变量来运行具有不同数据集的集合。Collection Runner可以导入CSV或JSON文件,然后使用HTTP请求和脚本中的数据文件中的值。

    1. 创建测试集文件夹

    2. 准备要运行的变量文件,如:url.json

    3. 添加接口

      接口中的使用变量要用这种格式:{{url}}

      在预先请求和测试脚本中,特变量要用这种格式:data.url或data ['url'],这将允许从数据文件访问url变量的值。

    4. 打开“Collection Runner”窗口并选择相应的集合或文件夹

    5. 设置迭代次数

      迭代计数是希望集合或文件夹运行的次数。每次迭代将使用数据文件中的一行。如果迭代次数大于数据文件中的行数,则重复上一行的值

    6. 选择要运行的变量文件、选择数据文件类型

      对于JSON文件,您需要确保该文件具有一个键/值对数组。数组中的每个元素都是键值对的对象,表示1次迭代。这些键用作变量名称,而值在请求中被替换

    7. 选择数据文件类型后,点击“Preview”可以预览变量数据

    8. 运行集合并观察结果

    3、技术使用中遇到的问题和解决过程

    1.问题内容

    post请求失败 500

     <!doctype html><html lang="en"><head><title>HTTP Status 500  .......
    

    2.错误原因

    (其实就是json格式的问题)
    header: Content-Type : application/json

    3.解决方法

    4、总结

    postman测试时候未得到预期结果的时候应检查——

    【版本问题】同一个接口在不同版本调用时效果不同。(可以检查版本默认参数是否一致。)
    【设置问题】使用同一个版本请求同一个接口,接口参数一致的情况下效果不同。
    (1)检查postman设置参数;
    (2)检查接口默认参数设置;
    (3)比对参数值,注意参数值的格式是否一致;
    (4)检查参数值中是否包含空格、换行等

    5、列出参考文献、参考博客

  • 相关阅读:
    前台js加密实例
    Redis 核心原理
    Rredis的安装与常用命令
    Zookeeper的源码环境的搭建和源码解读
    Zookeeper集群搭建
    Zookeeper的客户端API使用
    Zookeeper介绍
    HashMap的死锁 与 ConcurrentHashMap
    定时任务 & 定时线程池 ScheduledThreadPoolExecutor
    Fork/Join框架
  • 原文地址:https://www.cnblogs.com/Niiiiiiiicole/p/13129561.html
Copyright © 2011-2022 走看看