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

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

Postman内置变量的局限性

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

 title=

但即便如此,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会自动生成随机的符合规则的邮箱地址。

 title=

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

 title=

动态参数配置

类似地,针对上述完善用户资料的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的界面效果:

 title=

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

日期与时间的动态生成

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

 title=

对比总结

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

总结

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


忧郁的钥匙扣
6 声望0 粉丝