个人技术总结——postman的使用(使用数据变量多次运行集合)

摘要:
=400; 参数:状态代码12.检查代码名称是否包含内容Statuscode:Codenamehasstring对应脚本:tests[“Statuscodenamehasstring”]=responseCode.name。有参数:预期的代码名称包含字符串13。成功的请求后状态码:SuccessfulPOSRequest对应的脚本:tests[“Successful POSRequest”]=responseCode。code==201 ||响应代码。代码==202;14.与小验证器UseTinyValidatorforJSONdata:varschema={“items”:{“type”:“boolean”}}}相对应的脚本;vardata1=[真,假];vardata2=[真,123];安慰日志测试[“ValidData1”]=tv4.validate;测试[“ValidData2”]=tv4.validate;参数:您可以修改项中的键值对,以与验证json的参数相对应。您可以使用CollectionRunner中的数据变量来运行具有不同数据集的集合。打开CollectionRunner窗口并选择相应的集合或文件夹以设置迭代次数迭代次数是希望集合或文件夹运行的次数。每个迭代将使用数据文件中的一行。数组中的每个元素都是键值对的对象,表示1次迭代。

1、技术概述

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

2、技术详述

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

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

    个人技术总结——postman的使用(使用数据变量多次运行集合)第1张

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

    个人技术总结——postman的使用(使用数据变量多次运行集合)第2张

  • 接口请求

    • get请求

    • post请求

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

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

      个人技术总结——postman的使用(使用数据变量多次运行集合)第3张

      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变量的值。

    个人技术总结——postman的使用(使用数据变量多次运行集合)第4张

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

  5. 设置迭代次数

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

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

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

    个人技术总结——postman的使用(使用数据变量多次运行集合)第5张
  7. 选择数据文件类型后,点击“Preview”可以预览变量数据

  8. 运行集合并观察结果

    个人技术总结——postman的使用(使用数据变量多次运行集合)第6张

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

1.问题内容

post请求失败 500

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

2.错误原因

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

个人技术总结——postman的使用(使用数据变量多次运行集合)第7张

3.解决方法

个人技术总结——postman的使用(使用数据变量多次运行集合)第8张

4、总结

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

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

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

免责声明:文章转载自《个人技术总结——postman的使用(使用数据变量多次运行集合)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mqtt(MQTT)Ubuntu14.04建立WiFi热点下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java 后台通过IO流把文件传到前端并下载

我的业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件,所以用到了这一个IO读取文件的接口      JAVA代码(排版有点问题  已经尽力补救了(:3_ヽ)_) import java.io.BufferedInputStream; import java.io.BufferedOutputStream;...

开源BI分析工具Metabase配置与完全使用手册

文章目录 简介 安装 初始配置 数据分析 简单查询 创建场景 创建集合和仪表盘 自定义查询 原生查询 sql变量 动态sql片段 管理员操作 添加数据库连接oracle 成员管理邀请新成员 权限配置 数据权限 文件夹权限 邮箱配置 定时任务 简介 Metabase是一个免费的BI分析工具,可以帮助你把数据库...

RF设置全局变量

一般情况下,我们的测试用例会有很多公用数据,比如在测试购票功能的时候,可能是一直使用同一个列车号,这时候我们就没有必要在每一个Case中都去新建一个列车班次,而是设置一个全局变量: 1、Set Variable与Set Global Variable 翻译一下就可以知道这两个RF内置函数的区别:设置变量、设置全局变量 用法上的区别呢?前面已经说过,我们可...

c++拓展register寄存器

寄存器----硬件和软件打交道的接口,这上面装了android,亦或是 windows,linux就能和相关的操作系统设备打交道 早期硬件性能并不很快时,为了提高程序运行的效率,会声明一个寄存器变量,这样一来相当于埋好了“伏笔”,省去了现场开辟空间,再赋值的麻烦 register int a = 10 但是C语言寄存器变量没有地址一说,所以这类写法是...

浅析接口测试

接口测试是一种测试类型,又是一种测试方法,它是很多个领域测试工作的一部分,同时它又可以通过不同方式来执行; 功能测试 功能测试即我们常说的黑盒测试,传统意义上的黑盒测试即验证开发出来的产品是否满足产品提出的产品需求说明书,而接口实际上也是产品需求的一部分;例如:产品需求:客户端输入一个词,点击按钮,即按时间倒叙展示这个词相关的新闻;功能实现:客户端将用户输...

四种Java脚本语言

转自:http://blog.csdn.net/widegoose/article/details/306272 出处 仙人掌工作室 eNet硅谷动力一、脚本解释器概述在一些Java应用的需求中,集成某种脚本语言的支持能够带来很大的方便。例如,用户可能想要编写脚本程序驱动应用、扩展应用,或为了简化操作而编写循环和其他流程控制逻辑。在这些情况下,一种理想的解...