Junit5 + YAML 轻松实现参数化和数据驱动(一)

本文介绍了如何使用Junit5和YAML进行参数化及数据驱动测试,通过示例展示了如何读写YAML文件,便于业务测试人员维护自动化测试用例,降低维护成本。同时强调了避免在测试用例中过多地使用数据驱动以保持用例的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bbd95be219c6d77d770775d6c7c33d2d.jpeg

登录:不同的用户名,不同的密码,不同的组合都需要做登录场景的测试,正常的排列组合下可能会产生多个用例

搜索:不同的搜索条件产生不同的搜索结果,搜索也是常见的测试项,单个搜索参数或者多种搜索参数的组合;同样也会产生多个用例。

参数化:我们在写自动化用例的时候会有很多方法,一般我们都会把数据通过参数来传递给方法,而不会直接在方法中写“死”,所以方法之间的数据传递都是通过参数化来进行,利用参数化进行数据与变量的对应;比如我们的登录账号密码设置在参数中,再将参数传递到方法中。

public MainPage login(String username, String password) { sendKeys(inputUsername,username); sendKeys(inputPassword,password); click(loginBtn); return new MainPage(); }

数据驱动:将参数化中的数据来源变成从外部读取,参数有一个存放数据的地方,在用例执行的时候去去数据;这个数据存储的地方可以是我们定义的数组、hashmap,也可以是从外部文件中(excel、csv、xml、yaml等)读取。

例如上述的搜索案例,我们可以将搜索条件放入外部文件中,每次执行搜索用例时,去文件中获取数据,根据获取到的数据执行不同的搜索测试即可。

- - 洗衣液 - - 帽子 - - 手套

总结下来:

在执行测试工作过程中,有很多过程是需要动态变化的,如果每一次的变化都需要编码部署,那么整个执行的流程就会边长;

对于业务测试工程师来说,维护自动化代码有一定的门槛,需要熟悉编程语言和测试框架的结构;

定义好了数据驱动,将变化的数据放入配置文件中进行维护,既便捷(无需找到对应代码修改部署),也降低了维护的门槛(业务测试只需要在配置文件中修改数据即

在Python项目中,结合YAML、Allure以及API接口进行自动化测试种高效且结构清晰的方式。下面我会分别对这几个组件的作用及如何整合它们来进行接口自动化测试个简单的介绍。 ### Python 作为门解释型语言,它拥有简洁明了的语法特点,并且有着非常丰富的第三方库支持,如`requests`, `pytest`, 这些工具对于构建网络请求编写单元测试都非常有帮助。 ### YAML (Yet Another Markup Language) 这是种人类可读的数据序列化标准,常用于配置文件。相比于JSON等其他数据交换格式,YAML更注重于简化性易读性,在定义复杂的层级关系时显得尤为方便。特别是在存储测试用例信息方面,可以将每个case都封装成个独立的对象存放在yaml文档里,这不仅利于维护还便于参数化的操作。 ### Allure Reporting Tool 这是个轻量级的行为驱动开发(BDD)风格报告生成器,能够很好地兼容多种主流框架(例如JUnit/TestNG/PyTest...)并提供详细的HTML格式测试结果展示页面,包括但不限于环境详情、步骤日志跟踪、断言失败原因分析等功能点;此外还可以通过图表的形式直观地反映出项目的整体质量状态趋势变化情况。 #### 实现过程简述: 1. **准备阶段** - 使用pip安装必要的依赖包:`requests`,`pyyaml`,`allure-pytest`; 2. **设计测试计划** - 根据业务需求确定要验证的功能模块列表; 3. **创建测试脚本** - 利用pytest组织TestCase集合并引入自定义fixture加载外部资源(比如从.yaml读取URL路径+期望返回值); 4. **发送HTTP请求 & 检查响应内容是否满足预期条件** 5. **标记关键事件节点以便后续生成美观详尽的结果快照** 6. 执行命令行指令运行所有已注册进来的suites并将产生的二进制统计数据转储到指定位置供后期渲染解析使用。 7. 最终借助'allure serve'快速预览本地版式的执行概况亦或是上传至远程服务器共享给团队成员审阅讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值