当前位置: 首页 > news >正文

利用Postman和Apipost进行API测试的实践与优化-动态参数

在实际的开发和测试工作中,完成一个API后对其进行简单的测试是一项至关重要的任务。在测试过程中,确保API返回的数据符合预期,不仅可以提高开发效率,还能帮助我们快速发现可能存在的问题。对于简单的API测试,诸如验证响应体或查看基本参数的返回情况,我们通常会使用诸如cURL之类的命令行工具。然而,在面对需要传递复杂请求参数的API测试场景时,仅靠cURL远远不够,这时需要借助更专业的工具,例如Postman来进行操作。

Postman内置变量的局限性

Postman是一款功能强大的API测试工具,支持通过参数化的方式来提高测试效率。它内置了一些变量,如随机IP、UUID、时间戳等,这些变量的存在可以帮助我们快速生成动态数据,以满足一些常见的API测试需求。

Postman内置变量.png

但即便如此,Postman的内置变量功能在复杂场景下仍然显得捉襟见肘。例如,当面对需要生成真实而多样化随机数据的场景时,其内置的变量种类和灵活性并不足以覆盖所有需求。以【完善用户资料】API测试为例:

API地址:
https://httpbin.org/user/1

请求体参数如下:

{
    "email":"",
    "mobile":"",
    "fullName":"",
    "birthday":"",
    "city":""
}

在测试该API时,我们可能需要对以下字段生成动态的、符合实际场景的随机值:

  • email:需要是一个真实格式的随机邮箱。
  • mobile:需要符合目标区域的手机号码格式。
  • fullName:需要随机生成的姓名。
  • birthday:需要生成符合年龄范围的过去日期,且支持自定义格式。
  • city:需要根据区域生成不同的城市名。

虽然Postman支持通过pre-request script编写JavaScript脚本,来实现这些需求,但编写这些脚本需要较高的技术水平,并增加了测试的复杂性和维护成本。因此,在需要大量动态值的测试场景下,Postman的灵活性和便捷性并不足够。

Apipost的动态值功能

为了弥补这种不足,Apipost引入了更加强大的动态值支持,以更好地满足复杂测试场景的需求。Apipost在动态值生成方面具有以下几个显著优点:

  1. 丰富的内置变量:预设了种类多样的动态数据生成规则,如随机邮箱、手机号码、姓名、地址等。
  2. 灵活的参数化配置:支持用户通过简单的可视化操作快速自定义参数生成规则,而无需额外编写复杂的脚本。
  3. 更高的可维护性:所有配置均为低代码或无代码方式,减少后期维护的成本。

示例演示

配置动态邮箱

以下是如何使用Apipost生成指定后缀的随机邮箱的示例:

  1. 通过可视化界面设定邮箱的provider(域名后缀)。
  2. 配置完成后,Apipost会自动生成随机的符合规则的邮箱地址。

Apipost的动态值.png

实际发送API请求后,系统会根据设置为每次请求生成不同的email信息:

2.png

动态参数配置

类似地,针对上述完善用户资料的API,我们可以为测试字段设置动态值规则:

{
    "email":"{{$fakerjs.Internet.email(provider=gmail.com)}}",
    "mobile":"{{$fakerjs.Phone.number(style=national)}}",
    "fullName":"{{$fakerjs.Person.fullName}}",
    "birthday":"{{$fakerjs.Date.past|format(YYYY/MM/DD HH:mm:ss,+08:00)}}",
    "city":"{{$fakerjs.Location.city}}"
}

以下是动态配置在Apipost的界面效果:

4动态配置Apipost界面效果.png

不同参数的动态值格式清晰,规则可读性强,配置完成后,无需担心字段生成出错或后期维护问题。

日期与时间的动态生成

在动态生成类似日期和时间的数据时,Apipost还提供了细粒度的控制能力。例如,可以基于用户需求生成符合标准的日期格式,支持自定义时区、格式化规则等。

Apipost的动态值-生成类似日期、时间的随机数.png

对比总结

功能PostmanApipost
内置变量丰富度少量变量,无法覆盖大量测试场景丰富的变量选项,几乎覆盖所有测试场景
动态值自定义能力需通过JavaScript编写脚本,较高复杂度可视化操作,无需编程,简单易用
维护成本脚本维护成本高,复杂场景下成本上升所有配置均为低代码,维护成本低
灵活性灵活性有限,仅支持基本数据生成灵活性高,支持自定义生成规则

总结

在API测试中合理地利用动态值生成工具,可以大幅提升测试效率并降低重复性工作。Postman在简单API测试中能够高效完成任务,但当测试场景复杂、需要高动态化数据支持时,其功能的局限性可能带来额外的开发成本。相比之下,ApipostI通过丰富的内置变量、可视化动态值配置、低维护成本等特点,成为Postman的有力补充,特别适用于复杂测试场景。
对于测试开发工程师来说,合理选择和组合使用这些工具,能够更加从容地应对不同需求场景,推动开发与测试工作的高效运转。

相关文章:

  • SpringMvc的设计模式
  • Blazor-全局路由跳转事件
  • 污酸提铼系统提升改造工艺
  • k8s面试题总结(十)
  • TDengine SQL查询语法
  • 基于Spring Boot + Vue的图书个性化推荐系统(LW+PPT)
  • flask实现mvc模式
  • JVM内存结构和各种结构的作用
  • 蓝桥备赛(11)- 数据结构、算法与STL
  • VMware虚拟机中CentOS8系统账户,忘记密码怎么找回
  • [内网安全] Windows 域认证 — Kerberos 协议认证
  • Objective-C 中 @synthesize VS @dynamic
  • 每日一题——缺失的第一个正数
  • Taro React组件开发 —— RuiNoticeBar 通知栏
  • K8S高可用集群-小白学习之二进制部署(ansible+shell)
  • T31ZC 君正SOC芯片 应用于智能家居、工业控制等 满足各种嵌入式应用的需求 提供样品测试+软硬件资料
  • docker-compose安装redis-主从+哨兵(3台虚拟机一主两从)
  • 深度学习模型组件-RevNorm-可逆归一化(Reversible Normalization)
  • 行为模式---迭代器模式
  • MySQL 主主复制与 Redis 环境安装部署
  • 织梦网站发稿说明/baidu com百度一下
  • 公章在线制作网站做不了/竞价托管公司联系方式
  • 高校里做网站的工作/长沙推广引流
  • 域名停靠app大全免费下载网站入口/软文广告300字范文
  • 图片网站php源码/免费推广网站大全下载
  • 宠物网站建设论文/2023搜索最多的关键词