永登网站设计与建设,网站建设经验材料,域名注册好怎么建设网站,如何建立自己的网站步骤前言 这里可以把框架的各个功能称作模块#xff0c;那我们来看看都需要那些模块#xff0c;需要一个基础模块#xff0c;主要是怎么实现脚本编写#xff0c;管理模块#xff0c;主要的行为是持续集成#xff0c;定时执行、case管理#xff0c;统计模块#xff0c;主要…前言这里可以把框架的各个功能称作模块那我们来看看都需要那些模块需要一个基础模块主要是怎么实现脚本编写管理模块主要的行为是持续集成定时执行、case管理统计模块主要是发送测试报告统计分析。那总结一下自动化测试框架的定义就是把在自动化测试过程中用到的一些功能或者工具分装成各个模块包括如何进行自动化脚本编写以及分层功能的基础模块进行持续集成、定时任务的管理模块发送测试报告、进行测试结果统计分析的统计模块等将这些模块组成一套可重用的骨架。设计原则通用性能够在各种各样的系统和平台都能够使用易维护性能够把我们的数据、用例、框架的实现进行独立的维护能够在实现完善的过程快速的定义到维护的点而不对框架的其他功能造成影响定时处理能够在指定的时间执行持续集成当被测程序和测试代码有更新能够自动执行调试可调试行强一、Robot Framework作为最重要的Python测试框架之一Robot Framework主要被用在测试驱动(test-driven)类型的开发与验收中。虽然是由Python开发而来但是它也可以在基于.Net的IronPython和基于Java的Jython上运行。同时作为一个Python框架Robot还能够兼容诸如Windows、MacOS、以及Linux等平台。使用先决条件在使用Robot Framework(RF)之前需要先安装Python 2.7.14及以上的版本。当然现在都到了python3.9往上走了(安装稳定的版本)以确保适当的注释能够被添加到代码段中并能够跟踪程序的更改。同时还需要安装Python包管理器–pip。当然也必须下载相应的开发框架例如在开发者圈子里比较流行的PyCharm社区版。另外由于其代码段本身并不依赖于任何IDE因此完全可以沿用手头既有的IDE工具。优点通过使用关键字驱动测试(keyword-driven-test)的方法它能够帮助测试人员轻松地创建具有可读性的测试用例进而简化了整个自动化的过程。用户能够轻松地测试数据中的语法。因为是由各种通用工具和测试库所组成所以它不但拥有庞大的生态系统而且可以在单独的项目中使用其各个元素。由于拥有许多类型的API因此该框架具有高度的可扩展性。虽然并非内置功能但是Robot可以通过Selenium Gri来帮助用户运行各种并行测试。缺点虽然有着上述各种便利但是Robot Framework在创建自定义的HTML报告方面比较繁琐。您顶多能用它来生成xUnit格式的简短报告。另外Robot Framework在并行测试方面也并不见长。Robot的特点与竞品比较由于Robot具有丰富的内置库并能使用更为简单的面向测试的DSL(Domain Specific Language)因此如果您是自动化测试领域的新手并且缺乏开发经验的话那么将它作为Python测试框架要比下面将要提到的Pytest或Pyunit更容易上手一些。当然如果您需要开发复杂的自动化框架那么还请使用Pytest、或其他类型的Python框架。二、Pytest适用于多种软件测试的Pytest是另一个Python类型的自动化测试框架。凭借着其开源和易学的特点该工具经常被QA(质量分析)团队、开发团队、个人团队、以及各种开源项目所使用。鉴于Pytest具有“断言重写(assert rewriting)”之类的实用功能许多大型互联网应用如Dropbox和Mozilla都已经从下面将要提到的unittest(Pyunit)切换到了Pytest之上。使用先决条件除了基本的Python知识用户并不需要更多的技术储备。另外用户只需要有一台带有命令行界面的测试设备并且安装好了Python包管理器、以及可用于开发的IDE工具。优点过去开发人员必须将他们的测试包含在各种大型的类中。如今Pytest可以让用户写出更为紧凑的测试套件。其他的测试工具会要求开发或测试人员使用调试器或以日志检查的方式检测某个特定值的来源。而用户在用Pytest来编写测试用例时完全可以将所有的值都存储在测试用例之中直到再获悉有哪些值失败了、以及哪些值得到了断言。由于涉及到的样板代码(boilerplate code)并不多因此用户能够容易地编写和理解各种测试。测试夹具(Fixture)函数常被用来向测试函数添加某个参数并返回不同的值。在Pytest中您可以通过使用一个夹具来模块化另外一个。同时用户可以使用多个夹具在无需重写测试用例的情况下将测试覆盖到所有参数的组合。Pytest开发人员通过发布各种实用插件来保持框架的可扩展性。例如pytest-xdist可以在不使用其他测试器的情况下被用于执行并行测试。同时单元测试也可以在无需复制任何代码的情况下实现参数化。通过为开发人员提供各种特殊的例程它能够使得测试用例的编写更为简单、更不易出错同时代码也会变得更短、更易被理解。缺点上述提及的特殊例程也意味着用户必须放弃一定的兼容性。虽然方便了用户编写测试用例但是这些用例却无法与任何其他的测试框架一起被使用。Pytest的特点与竞品比较就编写功能性测试用例和开发复杂的框架而言Pytest胜过下面将要提到的UnitTest。不过它和Robot Framework类似仅适用于开发出简单的测试框架。三、UnitTest / PyUnit受到了JUnit启发的UnitTest/PyUnit也是一种标准化的针对单元测试的Python类自动化测试框架。它的基类TestCase提供了各种断言方法、以及所有清理和设置的例程。因此TestCase子类中的每一种方法都是以“test”作为名词前缀以标识它们能够被作为测试用例所运行。用户可以使用load方法和TestSuite类来分组、并加载各种测试。当然您也可以通过联合使用来构建自定义的测试运行器。正如我们使用Junit去测试Selenium那样UnitTest也会用到UnitTest-sml-reporting、并能生成各种XML类型的报告。使用先决条件由于UnitTest默认使用了Python因此我们并不需要什么先决条件。除了需要具备Python框架的基本知识您也可以额外地安装pip、以及用于开发的IDE工具。优点开发人员并不需要安装任何其他的模块。UnitTest是xUnit的衍生产品其工作原理与其他xUnit框架十分类似。因此对于那些没有过硬Python背景的人来说也能很快地上手。用户能够以更为简单的方式运行单个测试用例。您只需在终端上预定好名称该框架便可灵活地执行各种用例的测试并产生精炼的输出。它能够在几毫秒内生成各种测试报告。缺点虽然该框架常用snake_case来命名各种Python代码但是由于它源自Junit因此仍保留了一些传统的camelCase命名方法。这往往会让人产生混淆。由于它过多地支持了抽象方法因此造成了测试代码的目的有时不够清晰。需要大量的样板代码。PyUnit的特点与竞品比较和部分Python开发人员的观点相似我认为Pytest能够培养测试人员以非常紧凑的方式编写出更好的自动化代码这一编程习惯。尽管UnitTest是Python默认的自动化测试框架但是其工作原理、及命名规则仍与标准的Python代码略有不同。同时它也需要太多的样板代码。因此该框架并不太受欢迎。四、Behave我们都知道行为驱动开发(behavior-driven developmentBDD)是一种基于敏捷软件开发的方法。它能够鼓励开发人员、业务参与者和QA人员三者之间的协作。作为另一种Python测试框架Behave允许团队避开各种复杂的情况去执行BDD测试。从本质上说该框架与SpecFlow和Cucumber非常相似常被用于执行自动化测试。用户可以通过简单易读的语言来编写测试用例并能够在其执行期间粘贴到代码之中。而且那些被设定的行为规范与步骤也可以被重用到其他的测试方案中。使用先决条件任何具备Python基础知识的人都可以使用Behave。其他先决条件还包括必须先安装Python 2.7.14及以上的版本。需要通过Python包管理器或pip来与Behave协作。大多数开发人员会选择Pycharm作为开发环境当然您也可以选用其他的IDE工具。优点由于系统行为使用了半正式(semi-formal)语言、以及域词汇表(domain vocabulary)因此Behave有助于在组织中保持一致性的行为。让那些工作在不同模块上的开发团队通过协调处理来具有类似的特征。其构建的各个功能块能够执行各种测试用例。由于具有更多值得用户推理和思考的细节因此目标产品会具有更好的规范性。根据类似的规范格式它能够让项目经理和利益相关者对开发团队和QA团队的输出具有更清楚地了解。缺点只适用于黑盒测试。Behave的特点与竞品比较Behave最适合于诸如简单Web测试之类的黑盒测试。但是对于那些具有复杂场景的集成测试与单元测试而言Behave并不是一个很好的选择。作为Behave的替代品一些开发与测试人员会推荐使用pytest-bdd。该工具融合了Pytest的所有优点并实现了各种行为驱动测试的场景。五、LettuceLettuce是另一种基于Cucumber和Python的行为驱动类自动化工具。Lettuce主要专注于那些具有行为驱动开发特征的普通任务。它不但简单易用而且能够使得整个测试过程更流畅、甚至更有趣。使用先决条件您需要安装带有IDE的Python 2.7.14、及以上的版本。当然您也可以使用Pycharm或任何其他IDE工具。同时您还需要安装Python包管理器。优点和其他BDD测试框架类似Lettuce能够让开发人员创建多个场景并用简单的自然语言去描述不同的功能。根据类似的规范格式开发与QA团队能够协调共事。对于黑盒测试而言Lettuce非常适合于那些行为驱动的测试用例。缺点为了成功地实现行为驱动测试开发团队、QA人员以及利益相关者之间需要持续进行沟通。倘若缺乏此类沟通则会产生流程模糊不清并让团队遇到问题。竞品比较在普通开发人员和自动化测试人员看来Cucumber在执行BDD测试方面更为实用。而在Python开发和QA人员看来Pytest-bdd才是***的。Pytest的强大之处在于其框架实现了紧凑且易于理解的代码并能紧密地结合到行为驱动的测试之中最后下方这份完整的软件测试视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】​​​软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。