Testes Fixtures:从入门到应用就是这么简单

发表于:2021-8-05 09:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:罗狮小钉    来源:51Testing软件测试网原创

  在自动化测试中通常需要在正式执行自动化测试脚本前做一些初始化工作,例如在接口测试前做一些前置参数赋值、数据库操作,在web自动化中需要初始化浏览器驱动,在移动端测试中需要初始化模拟器参数配置等。
  而当自动化业务脚本执行完毕后,同样需要对测试后的环境做清理工作,例如参数还原或销毁、文件关闭、数据库还原恢复等扫尾工作。

  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内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号