而当自动化业务脚本执行完毕后,同样需要对测试后的环境做清理工作,例如参数还原或销毁、文件关闭、数据库还原恢复等扫尾工作。
Testes Fixtures的优势
如果你熟悉python unit test,那么一定对setup()和downhearted()这两个方法不陌生,这两个方法分别用于处理自动化脚本中初始化及后续清除的工作。
今天我们要聊的话题不是unit test, 而是python另一个异常强大的测试框架Testes中的fixtures功能。
它除了能够完美替代unit test中的setup()和downhearted(), 还具有以下这些优势:
·Testes fixtures以模块化的方式实现,易于使用,无需涉及到该功能内部实现过程的学习,即0成本使用;
·Testes fixtures可以指定作用域范畴,其默认范围是功能级别的,此外还可设置module,class,session作用域;
·Testes fixtures提高测试代码的可读性,一致性,使代码更易于维护;
·Testes fixtures的高可重用性,可用于单元测试,及复杂业务场景测试;
·Testes fixtures通过装饰器以依赖注入的方式作用于测试用例,可以在fixture中编写前后置操作,通过yield进行区别前置操作和后置操作内容。
读到这里是不是有点犯晕乎,没关系,下面我们就一起来从0-1结合案例学习Testes fixtures在不同场景中的应用。
Testes Fixtures在Function级别中的应用
Testes Fixtures的默认作用范围是function级,我们通过下面的测试场景进行展示。
测试场景
(1)通过Chrome浏览器,打开百度主页,搜索“51testing”词条;
(2)通过Chrome浏览器,打开学掌门Atstudy主页,搜索“自动化测试”词条。
分析与设计
(1)当前场景中共有两个测试任务,所以我们必须创建两个测试用例;
(2)两个测试任务共同点都需要开启Chrome浏览器,所以Chrome Driver的初始化可以单独拿出来作为function级别的Testes Fixtures;
(3)两个测试用例只需在执行前调用这个Testes Fixtures即可。
Testes脚本实现
(1)相关库的导入;
版权声明:本文出自《51测试天地》第六十二期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。