一、什么是自动化测试框架?
自动化测试框架是为自动化测试用例或者脚本提供执行环境而搭建的基础设施。自动化测试框架有助于有效地开发、执行和报告自动化测试用例。
优点:
· 代码复用
· 提高测试效率
· 更高的测试覆盖率
· 维护成本低
· 更早发现和记录bug
二、框架的基本组成
1、配置文件管理:
一般需要一个配置文件去控制一些环境信息、开关。配置文件可以是txt/xml/yaml/properties/ini,一般.propertis使用较多在JAVA里,Python的话通常会选择ini文件。
2、业务逻辑代码和测试脚本分离
如果代码和脚本在一个类文件,那么就根本没有用到代码重构,复用。代码和用例文件分离后,会更加清晰,可以有更多人开发脚本,方便调试。
3、报告和日志文件输出
执行了多少case,case结果如何,这都需要报告来展示,一般采用第三方插件来实现这个功能。好多报告格式是html,简单,明了的风格。日志输出也很重要,如果发生报错,脚本执行失败,通过日志快速定位发生问题位置。
4、自定义的库的封装
很多功能需要重复调用,可以写成一个公用方法,放到工具包下,每次方便调用,例如浏览器引擎类和basepage.py的封装。
5、管理、执行脚本方式
例如Python中单元测试框架unittest使用率非常高。
6、第三方插件
有时候,一些功能需要借助第三方插件,能够更好实现,例如AutoIT(来实现文件上传和下载)。还有利用第三方报告插件生成基于html格式的测试报告。
7、持续集成
git、svn、ant、maven,jenkins,我们会把这整合到jenkins,达到持续集成,一键执行测试脚本。
三、流行的自动化测试框架
Robot Framework
如果要使用python自动化测试框架进行测试自动化,则Robot Framework是最佳选择。Robot Framework是基于Python的,但是也可以使用 Jython(Java)或IronPython(.NET)语言进行脚本用例的编写。
· Robot Framework使用关键字驱动的方法使测试用例易于创建。
· Robot Framework还可以测试MongoDB、FTP、Android、Appium等。
· 它拥有非常多的测试库,包括Selenium WebDriver库和其他常用的的工具。
· Robot Framework具有许多API,可帮助使其尽可能地扩展。
WebdriverIO
WebdriverIO是基于Node.js的自动化测试框架。它具有集成的测试运行程序,可以为Web应用程序以及本机移动APP运行自动化测试用例。而且,WebdriverIO可以同时在WebDriver协议和Chrome Devtools协议上运行,从而使其对于基于Selenium Webdriver的跨浏览器测试或基于Chromium的自动化都非常有效。由于WebDriverIO是开源的,因此测试工程师可以获得一堆满足自动化需求的插件。
作者:桂棹兮兰桨