仿真测试自动化实战:三步搞定接口循环验证

发布于 更新于
3,080
详情介绍
智行者IC社区持续更新技术干货、实操教程、案例分享与常见问题解答,为学习者提供实用的学习参考资料。

我测过 Postman v10.15,遇到过脚本循环中断、断言误报这类情况。

配置Collection Runner循环参数

开启Postman,轻点左侧Collections栏,挑选中那你准备要执行的接口集合,点击右上角的Runner按钮,步入运行配置面板,在Iterations栏键入循环次数,好比10次,在Delay栏填进2000毫秒,关键的一步,勾选Save Responses,便利后续排查失败请求。

【新手避坑】

为新手时常碰到的那些报错当中,有一情况是呈现为这样的情况,即显示“Runner does not start”,而其最为关键的原因在于,处于集合范围内,竟然未曾留存具备有效性的请求示例这件事。针对此种情境,能够快速达成解决目的的办法是,去核查每一个请求,查看其URL以及必要参数是否已经填写妥当,之后通过右键点击集合,选择“Save All”这一操作选项,并且要确保所有的变更都已经成功完成保存。

编写断言并注入动态变量

将动态参数写入到集合的Pre – request Script里,点击集合名称旁边的三个点,选择Edit,切换至Pre – request Script标签,粘贴如下代码也就是pm.variables.set(“timestamp”, Date.now()),而后在请求的Params参数值里引用{{timestamp}}。在达成那个请求之后,在Tests标签里去书写断言从而对响应状态码校验,可这样操作:写为, pm试验了(“状态代码是200”,要进行这样的功能,即该功能让其,函数作用是, pm回应要去有那种状态(200这个状态码))。

【新手避坑】

常有报错情况为断言失败然而响应呈现正常状态,探究引发该情况的原因在于响应体格式与预期不相契合。核心的出错根源在于:断言并未对照实际返回的结构匹配。能够快速实施的解决办法是:在Tests当中借助pm.response.json()将完整的数据结构打印出来,随后运用pm.expect针对各个字段展开校验操作,切莫直接进行路径如果。

设置数据文件驱动多轮迭代

处于Runner配置其页面时,点击Data旁边的Select File,去上传CSV或者JSON数据文件。此文件每行代表着一组输入参数,列名要与请求里引用的变量名保持一致。比如在CSV中第一行写上username,password,并且其中第二行写上test1,pass123。Runner会自动为每一次迭代去读取下一行数据。

【新手避坑】

新手常出现上报错误显示为“File not supported”这种情况,其关键原因在于文件编码并非UTF-8。有能快速解决的办法:借助Notepad++或者VS Code将CSV文件打开,接着另存为UTF – 8 without BOM格式,随后再进行重新上传。除此以外,要保证列名跟引用变量名完全相同,且大小写是敏感的。

不适用的场景是,当接口依赖严格顺序并且需要多层嵌套循环的时候, Runner的线性迭代容易导致数据错乱。替代的方案是,改用Newman配合JavaScript的循环控制逻辑,或者在GitLab CI里编写Python脚本来进行异步并发测试,这样更适用于复杂业务流。

常见问题(FAQ)

Runner点击运行没有反应怎么办?
这通常是集合里没有有效的请求示例。逐个检查请求的URL和必要参数是否填写完整,然后右键点击集合并选择全部保存,确认所有修改都已保存后再运行。
循环中怎么使用动态变化的时间戳参数?
在集合的请求前脚本里写入设置变量的语句,把时间戳变量赋成当前时间,然后在请求的参数值里用双花括号引用该变量,这样每次迭代都会取到新的值。
上传数据文件提示不支持怎么解决?
多半是文件编码不是UTF-8。用编辑器把CSV另存为不带BOM的UTF-8格式后重新上传,同时保证数据文件的列名与请求里引用的变量名完全一致,注意大小写。
0 / 600
0 讨论
热门最新
总结
暂无总结
嗨,下午好!
学硬件设计・来智行者 IC 社区
相关文章