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

API接口测试-postman批量执行测试用例及参数化

当面对多个用例集场景时,单独请求某一接口会影响效率,而当我们为每个接口请求设置好相关的自动化断言代码后,是可以使用“用例集”为单位进行批量执行测试用例的,且可以模拟一些小规模的并发测试场景,本文将分享postman批量执行测试用例的方法及参数化方案。

***批量执行方法-常规***


第一步:点击要进行批量执行的用例集名称后点击RUN按钮

第二步:勾选要批量执行的用例(默认全选)

第三步:设置Iterations(迭代,即重复执行的次数)

第四步:设置Delay(延迟,即间隔多少毫秒执行下一个请求,默认0ms)

第五步:点击RUN按钮即可(参数化部分暂时忽略,后文继续讲参数化)

 ***批量执行方法-参数化***


什么时候使用参数化?

答:例如当有n个用户进行同一个接口请求时,除了请求体(body)会发生变化,URL等信息均不发生改动,对于处理大批量的User的问题时,就可以使用参数化来快速解决这个问题。

支持两种数据源格式:CSVJSON

【CSV】优点:

数据组织形式简单,适用于大量数据的场景

【CSV】缺点:

1、不支持bool类型的数据(数据被postman读入后,会自动添加双引号,间接造成了bool值失效的情况)

2、不支持多参、少参、无参、错误参数的多元化接口测试。(因为CSV字段头不可改)

3、不支持复杂的数据类型(字典类型、列表类型等)

【JSON】优点:

1、可以支持bool类型

2、可以支持多参、少参、无参、错误参数的多元化接口测试

3、可以支持复杂的数据类型(字典类型、列表类型等)

【JSON】缺点:

对于相同数据量的情况下,json文件的数据量要远大于csv文件

CSV数据准备(CSV和JSON二选一):

1、创建CSV文件,命名为xxx.csv。

2、 将数据写入到csv中(需要UTF-8编码格式)。

  • 第一行写入的是数据对应的字段名,如username、password
  • 第二行及以后依次写对应的值,数据之间用英文逗号隔开
  •  

3、在postman中,选中使用数据文件的用例集,导入数据文件。

JSON数据准备(CSV和JSON二选一):

1、创建JSON文件,命名为xxx.json。

2、在数据文件中,需按JSON的语法写入数据。按postman要求,json格式的数据文件,数据内容的最外层,必须是[ ]括号,内部所有的数据用{ }括号存储。

3、在postman中,选中使用数据文件的用例集,导入数据文件。

[
{"username":"12345678","password":"44554666"},
{"username":"12345688899","password":"4455788784666"},
{"username":"1234996663378","password":"445511224666"}
]

//json示例,可进入json.cn进行编辑比较方便

导入数据文件:

前四项步骤与上述常规批量执行方式设置一致

第五步:选择Select File加载CSV/JSON文件

选择之后会多出2个按钮,其中preview按钮是预览,可以预览导入的数据内容是否正确

第六步:点击RUN按钮开始执行参数化后的请求

***引用参数化数据的方法***


请求参数中使用数据文件中的数据(请求行、请求头、请求体):

方法:使用{{value}}的方法引用CSV文件中的字段名或JSON文件中的KEY

JS代码中使用数据文件中的数据(断言、请求前置脚本):

方法:借助postman提供的关键字data.(小数点)+CSV文件字段名或JSON中的KEY

data.username

//例子

附:批量运行界面部分按钮翻译图(一般保持默认即可不需要特意勾选)

以上就是本文的全部内容了,如有疑问欢迎评论区留言讨论~


关注我,不迷路

******我的本文相关专栏******

软件测试专栏(单击此处进入)


 ******我的其它作品专栏******

PC常见故障汇总专栏(点击进入)

EXCEL综合场景应用详解(点击此处进入)

全国计算机等级考试-二级python基础(点击此处进入)

相关文章:

  • 【Linux集群教程】15 集群装机 - Cobbler 简介和搭建
  • C · 进阶 | 慎看!深剖文件操作,怕你停不下
  • 【JavaWeb】之MVC三层架构
  • 算法模型总结:二分查找
  • 基于遗传算法的二进制图像重建(Matlab代码实现)
  • opencv训练自己的模型,实现特定物体的识别
  • Long类型的数据,后端传给前端产生的精度丢失问题
  • 机器学习之神经网络的公式推导与python代码(手写+pytorch)实现
  • Spring | Spring整合Mybatis
  • 【学生管理系统】权限管理之角色管理
  • Uniapp零基础开发学习笔记(5) -组件入门及容器组件使用
  • HarmonyOS系统中内核实现烟雾检测的方法
  • 【科学文献计量】Networkx基础使用指南
  • 改进YOLOv5 | Stand-Alone Self-Attention | 针对视觉任务的独立自注意力层 | 搭建纯注意力FPN+PAN结构
  • 大数据项目之电商数仓、数据仓库概念、项目需求及架构设计
  • CSS实用技巧
  • exports和module.exports
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Python - 闭包Closure
  • Service Worker
  • Spring声明式事务管理之一:五大属性分析
  • Vue组件定义
  • Vultr 教程目录
  • 高性能JavaScript阅读简记(三)
  • 构建工具 - 收藏集 - 掘金
  • 前端面试题总结
  • 前端面试之闭包
  • 如何合理的规划jvm性能调优
  • 如何选择开源的机器学习框架?
  • 走向全栈之MongoDB的使用
  • ​ArcGIS Pro 如何批量删除字段
  • $.ajax()参数及用法
  • $jQuery 重写Alert样式方法
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二)PySpark3:SparkSQL编程
  • (分布式缓存)Redis哨兵
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (十)T检验-第一部分
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)C#调用WebService 基础
  • **PHP分步表单提交思路(分页表单提交)
  • ./configure,make,make install的作用(转)
  • .apk 成为历史!
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net 反编译_.net反编译的相关问题
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET大文件上传知识整理
  • .net的socket示例
  • .Net多线程总结
  • .NET性能优化(文摘)
  • .NET中GET与SET的用法
  • .Net中的设计模式——Factory Method模式