自动化测试框架
在学习自动化测试或者实践自动化测试时,我们一定会对一个名词不陌生,那就是“自动化测试框架”,而有些人也将Selenium、Appium这样的工具也称之为“自动化测试框架”,那么到底自动化测试框架如何理解呢?
软件工程中的框架(framework),特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分(升级),从而更迅速和方便地构建完整的解决问题的方案。
根据以上框架的定义引申到自动化测试领域,我们可以定义自动化测试框架包括如下功能:
(1) 日志组件
记录和管理日志,方便定位问题,如logging模块等;
(2) 测试报告
管理与生成测试报告,快速得到测试结果,如Allure、HtmlReport等;
(3) 测试静态资源
如配置文件、引用的其他静态资源管理,实现配置与测试脚本分离;
(4) 测试用例管理与执行
如 Python 语言体系 UnitTest、Pytest 等;
(5) 测试数据管理
保存用例参数化数据,如可采用Excel、yaml、csv格式文件,实现测试脚本与测 试数据分离;
(6) 公共模块(Common)
保存用例公共方法、通用操作;
(7) 驱动模块(Driver)
底层执行自动化测试引擎,如Selenium Webdriver网页端测试库、Appium client 移动端测试库、Requests/REST-assured接口测试库。
其他辅助功能:
除了上述自动化测试框架基本组成成分之外,自动化测试框架还可以有更多其他的辅助功能,比如并行执行、失败重试、异常处理以及通过持续集成平台构建(如Jenkins)。
总的来说,一个完善的自动化测试框架应该是具备高扩展性、可维护性、稳定性。如Selenium、Appium只是具备上述框架的部分功能而已,所以我们在选择自动化测试框架时更多的是多个工具/库的组合,比如:Selenium+Pytest +Allure+Jenkins等。