五种Python自动化测试框架汇总,附学习方法
Posted 传智教育官方博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五种Python自动化测试框架汇总,附学习方法相关的知识,希望对你有一定的参考价值。
前言
这么多年遇到的大概工作一年的测试基本上处于什么情况,在前言带大家回顾下。
编程语言基本上一点都不会;
Linux仅仅了解;
功能测试:只有功能测试经验;
测试用例:能写,但写的好不好就另说了;
运维技术:知道而已;
学历:大专水平。
如果你也处于上述我说的水平,请大家仔细阅读下文内容。
一、如何入门自动化
首先,好多人说自动化没有那么神奇,不要被神话,我想说一个概念,功能测试的天花板就是15k,自动化入行是15k的薪资。你可以说自动化技术被神话了,如果不想被天花板限制,大家还是要学习自动化。
自动化测试是为了节约时间成本和人力成本进行的,本来就是和手工测试相辅相成的。
自动化主要的知识点就三项:
(1)自动化测试框架
(2)自动化测试脚本集
(3)丰富的自动化测试工具
本文我们主要是汇总了现在比较流行常用的自动化测试框架。
常用的Python自动化测试框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。软件测试的自动化在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试以人为驱动的测试行为转化为机器执行的一种过程。
下面一个一个说
二、Robot Framework
说白一点就是可以支持跨平台、多种应用测试。可以兼容:windos、MacOS、Linux等平台。
推荐使用Python3.6.4确保适当的注释能够被添加到diamagnetic中,并且可以跟踪更改。需要安装Python包管理器—pip。
学习的内容:
关键字、资源Resource、库Robot支持很多库,分为内置外置的。Python、Java携程的文件都可以;用例(多个关键字组合,顺序或者分支控制等组成的文件为Case);
三、Pytest
官方文档介绍:
Pytest is a framework that makes building simple and scalable tests easy. Tests are expressive and readable—no boilerplate code required. Get started in minutes with a small unit test or complex functional test for your application or library.
适用于多种软件测试的Pytest是另一个python类型的自动化测试框架。凭借着其开源和易学的特点该工具经常被QA团队、开发团队、个人团队、以及各种开源项目所使用。鉴于Pytest具有“断言重写”之类的实用功能许多大型互联网应用。
使用先决条件:除了基本的Python知识用户并不需要更多的技术储备。另外用户只需要有一台带有命令行界面的测试设备,并安装好了Python包管理器、以及可用于开发的IDE工具。
建议大家找汉化版的官方文档作为参考。除了安装和配置 之外,要学习的就是断言。在鞋代码的时候,我们会做一些假设,断言就是用于在代码中捕捉这些假设。
四、UnitTest/PyUnit
Pytest和UnitTest是经常被人拿出来做比较的。
pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。使用pytest编写用例,必须遵守以下规则:
1.测试文件名必须以“test_”开头(如:test_ab.py)
2.测试方法必须以“test_”开头这里很明显,编写测试用例的方法pytest就比unittest简单很多。
UnitTest/PyUnit是一种标准化的针对单元测试的Python类自动化测试框架。基类TestCase提供了各种断言方法、以及所有清理和设置的例程。因此TestCase子类中的每一种方法都是以“test”作为名词前缀,以标识它们能够被作为测试用例所运行。用户可以使用load方法和TestSuite类来分组、并加载各种测试。也可以通过联合使用来构建自定义的测试运行器。正如我们使用Junit去测试Selenium那样,UnitTest也会用到UnitTest-sml-reporting、并能生成各种XML类型的报告。
使用先决条件:由于UnitTest默认使用了Python,因此我们并不需要什么先决条件。除了需要具备Python框架的基本知识,也可以额外地安装pip、以及用于开发的IDE工具。
UnitTest编写Python单元测试代码,包括下面几个步骤,也就是我们应该学习的步骤。
写一个Python类,继承unittest模块中的testcase类,在编写测试类中定义测试方法(测试用例),在测试方法中调用被测试代码,校验测试结果。TsetCase类中提供了很懂校验的方法,最常见的就是assertEqual;
五、Behave
行为驱动开发(behavior-driven development,BDD),是一种基于敏捷软件开发的方法。它能够鼓励开发人员、业务参与者和QA人员,三者之间的协作。**作为另一种Python测试框架,Behave允许团队避开各种复杂的情况,去执行BDD测试。从本质上说,该框架与SpecFlow和Cucumber非常相似,常被用于执行自动化测试。**用户可以通过简单易读的语言来编写测试用例,并能够在其执行期间粘贴到代码之中。而且,那些被设定的行为规范与步骤,也可以被重用到其他的测试方案中。
使用先决条件:**任何具备Python基础知识的人都可以使用Behave。其他先决条件还包括:必须先安装Python 2.7.14及以上的版本。**需要通过Python包管理器或pip来与Behave协作。大多数开发人员会选择Pycharm作为开发环境,当然也可以选用其他的IDE工具。
六、Lettuce
Lettuce是另一种基于Cucumber和Python的行为驱动类自动化工具。Lettuce主要专注于那些具有行为驱动开发特征的普通任务。它不但简单易用,而且能够使得整个测试过程更流畅、甚至更有趣。
使用先决条件:**需要安装带有IDE的Python 2.7.14、及以上的版本。**当然,也可以使用Pycharm或任何其他IDE工具。同时,还需要安装Python包管理器。
五种自动化测试的Python框架中Pytest、Robot Framework和UnitTest可主要用于功能与单元测试,而Lettuce和Behave仅适用于行为驱动测试。
以上是关于五种Python自动化测试框架汇总,附学习方法的主要内容,如果未能解决你的问题,请参考以下文章
pytest接口自动化测试框架 | 修改Python traceback输出