博客
关于我
postman做接口测试
阅读量:800 次
发布时间:2023-03-03

本文共 3052 字,大约阅读时间需要 10 分钟。

Postman工具的安装与使用及接口测试实例

作为一名从事自动化接口测试的开发人员,我曾尝试过多种测试工具。Postman工具在功能上已经非常完善,适合处理接口返回的XML数据验证,虽然之前自己编写了一个简单的轮子,但Postman的使用体验却远胜于自制工具。以下将详细介绍Postman的安装、使用方法以及实际应用案例。


1. 安装步骤

首先,需要安装Google Chrome浏览器,接着进入Chrome应用商店搜索Postman工具:

https://chrome.google.com/webstore/search/postman?t=http://webstore.google.com

安装完成后,Postman的界面简洁直观,适合接口测试的需求。通过Postman可以方便地管理和分享测试用例,特别适合处理多个API接口的验证。


2. Postman的主要功能

2.1 Collections

在Postman中,Collection类似于文件夹,可以将同一项目的多个请求组织在一起,便于管理和分享。例如,创建一个用于展示接口测试流程的Collection,每个API对应一个请求。如果需要验证不同输入的结果,可以为每个测试用例单独创建请求。

2.2 请求设置

  • 请求名称:显示在请求列表的上方,为请求描述提供明确的命名。
  • HTTP方法:支持常见的HTTP方法(如GET、POST、PUT等),甚至一些不常见的方法。
  • URL参数:支持动态设置参数,使用大括号表示环境变量。
  • 请求体:支持多种格式(如x-www-form-urlencoded、raw JSON等),方便不同接口的数据发送需求。
  • 自定义头部:支持添加HTTP头部,必要时可以使用插件扩展功能。
  • 环境变量:允许在发起请求前设置变量,用于处理动态的URL或请求参数。

2.3 发送请求与验证

点击“发送请求”按钮即可执行测试,Postman会返回详细的响应数据。通过右侧的“Tests”栏,可以编写验证逻辑,确保接口返回的数据符合预期。


3. 接口测试实例

3.1 测试目标

以一个模块的返回验证为例,接口返回的是XML数据,需要验证返回数据的数量和传递的参数是否正确。通过设置合理的请求参数,确保接口能够稳定运行。

3.2 测试设计

  • 请求参数设置:在Postman中添加必要的HTTP头部和请求体,确保接口能够正常调用。
  • 环境变量配置:在不同的测试场景下,可以通过设置环境变量来动态调整请求参数。
  • 测试逻辑编写:使用JavaScript编写验证逻辑,检查响应数据中的特定字段是否符合预期。

  • 4. 实际应用案例

    4.1 注册功能测试

  • 发起注册请求
  • POST /index.php/users HTTP/1.1Host: postmanexample.sinaapp.comContent-Type: application/x-www-form-urlencodedusername=2mjk&password=123456&nickname=2mjk
    1. 验证响应结果
    2. tests["Status code is 201"] = responseCode.code === 201;

      4.2 登录功能测试

    3. 发起登录请求
    4. POST /index.php/authentication HTTP/1.1Host: postmanexample.sinaapp.comContent-Type: application/x-www-form-urlencodedusername=2mjk&password=123456
      1. 获取并验证Token
      2. tests["Status code is 200"] = responseCode.code === 200;var data = JSON.parse(responseBody);postman.setEnvironmentVariable("token", data.token);

        4.3 添加卡片功能测试

      3. 生成随机卡号和卡名
      4. postman.setEnvironmentVariable("random_cardno", Math.round(Math.random()*9999999));postman.setEnvironmentVariable("random_cardname", ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));
        1. 发起添加卡片请求
        2. POST /index.php/cards HTTP/1.1Host: postmanexample.sinaapp.comX-Authorization: d4c4a0b7b36c73e7a13b7e24a596093bContent-Type: application/x-www-form-urlencodedcardno=1385526&desc=2mo
          1. 验证卡片信息
          2. tests["Status code is 200"] = responseCode.code === 200;var data = JSON.parse(responseBody);tests["check cardname"] = data.desc === environment.random_cardname;

            4.4 查询卡片信息

          3. 发起查询请求
          4. GET /index.php/cards/1385526 HTTP/1.1Host: postmanexample.sinaapp.com
            1. 验证卡片信息
            2. var data = JSON.parse(responseBody);tests["check cardname"] = data.desc === environment.random_cardname;

              4.5 充值功能测试

            3. 发起充值请求
            4. POST /index.php/deposit HTTP/1.1Host: postmanexample.sinaapp.comX-Authorization: d4c4a0b7b36c73e7a13b7e24a596093bContent-Type: application/x-www-form-urlencodedcardid=1&amount=10
              1. 验证响应状态
              2. tests["Status code is 403"] = responseCode.code === 403;

                5. Postman的优势

                • 免费试用版:提供完整的功能,适合个人用户。
                • 环境变量支持:便于处理动态请求参数。
                • 强大的测试功能:通过JavaScript编写自定义验证逻辑。
                • 多平台支持:可以在Windows、Mac等系统上使用。

                6. 注意事项

                • 环境变量管理:合理设置环境变量,避免重复测试数据干扰。
                • 测试用例管理:使用Collection功能将多个测试用例组织在一起,便于批量执行。
                • 数据处理:对于复杂的接口返回数据,可以通过JSON转换来提取所需字段。

                通过以上方法,Postman已经成为我日常工作中的必备工具,帮助我高效完成接口测试任务。无论是简单的API验证,还是复杂的业务流程测试,Postman都能满足需求。如果你正在寻找适合接口测试的工具,Postman是一个不错的选择。

    转载地址:http://itxfk.baihongyu.com/

    你可能感兴趣的文章
    poj 3468 A Simple Problem with Integers 降维线段树
    查看>>
    poj 3468 A Simple Problem with Integers(线段树 插线问线)
    查看>>
    poj 3485 区间选点
    查看>>
    poj 3518 Prime Gap
    查看>>
    poj 3539 Elevator——同余类bfs
    查看>>
    Qt笔记——官方文档全局定义(三)Macros宏
    查看>>
    poj 3628 Bookshelf 2
    查看>>
    Qt笔记——官方文档全局定义(一)Types数据类型
    查看>>
    POJ 3670 DP LIS?
    查看>>
    POJ 3683 Priest John's Busiest Day (算竞进阶习题)
    查看>>
    POJ 3988 Selecting courses
    查看>>
    POJ 4020 NEERC John's inversion 贪心+归并求逆序对
    查看>>
    poj 4044 Score Sequence(暴力)
    查看>>
    POJ 基础数据结构
    查看>>
    POJ 题目3020 Antenna Placement(二分图)
    查看>>
    Poj(1797) Dijkstra对松弛条件的变形
    查看>>
    SpringBoot为什么不需要xml配置文件?
    查看>>
    POJ--2391--Ombrophobic Bovines【分割点+Floyd+Dinic优化+二分法答案】最大网络流量
    查看>>
    Qt笔记——SQLite初探QSqlDatabase QSqlQuery
    查看>>
    POJ-1163-The Triangle
    查看>>