五大自动化测试的Python框架
文章插图
自2018年被评选为编程语言以来 , Python在各大排行榜上一直都是名列前茅 。 目前 , 它在Tiobe指数中排名第三个 , 仅次于Java和C 。 随着该编程语言的广泛使用 , 基于Python的自动化测试框架也应运而生 , 且不断发展与丰富 。
因此 , 开发与测试人员在为手头的项目选择测试框架时 , 需要考虑许多方面的因素 , 其中包括:框架的脚本质量 , 测试用例的简单性 , 以及运行模块可能存在的技术弱点 。 为了避免出现“选择困难症” , 我在此为大家准备了五种Python类型的自动化测试框架 , 以供比较和讨论 。
1.Robot Framework作为最重要的Python测试框架之一 , Robot Framework主要被用在测试驱动(test-driven)类型的开发与验收中 。 虽然是由Python开发而来 , 但是它也可以在基于.Net的IronPython和基于Java的Jython上运行 。 同时 , 作为一个Python框架 , Robot还能够兼容诸如Windows、MacOS、以及Linux等平台 。
使用先决条件在使用Robot Framework(RF)之前 , 您需要先安装Python 2.7.14及以上的版本 。 我推荐您使用Python 3.6.4 , 以确保适当的注释能够被添加到代码段中 , 并能够跟踪程序的更改 。 同时 , 您还需要安装Python包管理器--pip 。
当然 , 您也必须下载相应的开发框架 , 例如:在开发者圈子里比较流行的Pycharm社区版 。 另外 , 由于其代码段本身并不依赖于任何IDE , 因此您完全可以沿用手头既有的IDE工具 。
优点
- 通过使用关键字驱动测试(keyword-driven-test)的方法 , 它能够帮助测试人员轻松地创建具有可读性的测试用例 , 进而简化了整个自动化的过程 。
- 用户能够轻松地测试数据中的语法 。
- 因为是由各种通用工具和测试库所组成 , 所以它不但拥有庞大的生态系统 , 而且可以在单独的项目中使用其各个元素 。
- 由于拥有许多类型的API , 因此该框架具有高度的可扩展性 。
- 虽然并非内置功能 , 但是Robot可以通过Selenium Grid(请参见) , 来帮助用户运行各种并行测试 。
另外 , Robot Framework在并行测试方面也并不见长 。
Robot的特点与竞品比较由于Robot具有丰富的内置库 , 并能使用更为简单的面向测试的DSL(Domain Specific Language) , 因此如果您是自动化测试领域的新手 , 并且缺乏开发经验的话 , 那么将它作为Python测试框架要比下面将要提到的Pytest或Pyunit , 更容易上手一些 。 当然 , 如果您需要开发复杂的自动化框架 , 那么还请使用Pytest、或其他类型的Python框架 。
2.Pytest适用于多种软件测试的Pytest , 是另一个Python类型的自动化测试框架 。 凭借着其开源和易学的特点 , 该工具经常被QA(质量分析)团队、开发团队、个人团队、以及各种开源项目所使用 。 鉴于Pytest具有“断言重写(assert rewriting)”之类的实用功能 , 许多大型互联网应用 , 如Dropbox和Mozilla , 都已经从下面将要提到的unittest(Pyunit)切换到了Pytest之上 。
使用先决条件除了基本的Python知识 , 用户并不需要更多的技术储备 。 另外 , 用户只需要有一台带有命令行界面的测试设备 , 并且安装好了Python包管理器、以及可用于开发的IDE工具 。
优点
- 过去 , 开发人员必须将他们的测试包含在各种大型的类中 。 如今 , Pytest可以让用户写出更为紧凑的测试套件 。
- 其他的测试工具会要求开发或测试人员使用调试器 , 或以日志检查的方式检测某个特定值的来源 。 而用户在用Pytest来编写测试用例时 , 完全可以将所有的值都存储在测试用例之中 , 直到再获悉有哪些值失败了、以及哪些值得到了断言 。
推荐阅读
- 极速鲨课堂85:显卡怎么测试 3DMARK详解
- 初探 iOS 自动化工具——快捷指令
- 测试|自动驾驶车辆将在深圳19个公开区域路测
- iPhone折叠屏要来?两种设计通过初步测试
- 曝富士康正为苹果测试折叠iPhone原型机
- 喵博士资讯 | 西安奥体中心建成国内首个5G场馆;苹果被曝已开始在工厂测试折叠屏iPhone
- 可折叠iPhone原型机已在富士康工厂成功经过测试
- 折叠屏iPhone要来了 曝富士康正在测试
- Fedora正在寻求协助 希望加快Linux 5.10 LTS内核测试进度
- 从i7-1185G7测试 谈十一代酷睿性能提升之根本