Python自动化测试框架有哪些?

2021-02-02 11:05发布

3条回答
梵梵
2楼 · 2021-02-03 10:34

Robot Framework

Robot Framework是最流行的Python自动化测试框架。它是完全用Python开发的,对于验收测试非常有用。这个框架可以运行在Java和.NET环境。它还支持跨平台,例如Windows、MacOS和Linux。这个产品是由世界上一些著名的测试人员创建的,拥有关键词驱动方案。它有如此多可用的工具和库,使得这个框架非常先进和健壮。

它是一个开源框架,并且留有API扩展空间。表格式的测试数据语法和关键词驱动测试使得它在全球的测试人员中非常流行。它无疑是最易用的自动化测试框架,并且允许你进行并行测试。

RedwoodHQ

RedwoodHQ是一个流行的自动化测试工具,它的流行是由于大部分流行的编程语言都可以用来编写测试,例如Java、Python、C#和likewise。它有一个网站界面,在那里多个测试人员可以在一个平台上协作和运行测试用例。在RedwoodHQ中出现的action关键字可以用来毫不费力地创建和修改测试用例。你所需要做的只是找到你需要的action,将它拖到你的测试盒中,然后输入参数并改变它们的值来生成一份完整的测试报告。它有一个内置的IDE(集成开发环境),你可以在那里创建和修改测试用例,并且并行运行它们。它是对用户最友好或对测试人员最友好的平台之一,它关注一个重大项目的全部测试过程。

Jasmine

Jasmine对于JavaScript单元测试使用行为驱动开发框架。它适用于任何使用JavaScript的地方。除了JavaScript之外,它还被用于Python和Ruby自动化测试。因此,它使得你可以并行运行客户端测试用例和服务端测试用例。它是一个将客户端和服务端单元测试结合起来的完美的测试框架,而且被认为是测试领域的未来。它现成可用,除了需要一个名为Karma的测试运行器之外,不需要其它外部依赖。

Pytest

如果你的项目比较小、复杂度比较低,Pytest是最适合的自动化测试平台。非常多的Python开发者都喜欢它,他们大部分用它来进行单元测试。它也具有Robot Framework所闻名的验收测试能力。Pytest最好的特性之一是,它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的Python。它还兼容unittest、doctest和nose,开箱即用。它还有包含更多功能的插件和多样化的现有测试技术和测试用例。事实上,有300多个可用插件来自它的活跃社区。该平台设计用于编写更简单错误率更小的代码。你可以将Pytest与诸如Selenium和Splinter之类的图形用户界面一起使用,来使得测试工作更轻松。


灰机带翅膀
3楼 · 2021-02-26 15:45

自动化测试常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。Pytest、Robot Framework和UnitTest主要用于功能与单元测试,Lettuce和Behave仅适用于行为驱动测试。


征戰撩四汸
4楼 · 2022-06-21 15:25

1.机器人框架


  如果是希望在测试自动化工作中使用python测试自动化框架,Robot框架是最佳选择。Robot框架基于Python,但也可以使用Jython(Java)或IronPython(.NET)。Robot框架使用关键字驱动的方法来简化测试的创建。Robot框架还可以测试MongoDB、FTP、Android、Appium等。它有许多测试库,包括Selenium WebDriver库和其他有用的工具。它有很多API来帮助它尽可能地扩展。Robot框架使用的关键字方法对于那些已经熟悉其他基于供应商的关键字驱动的测试工具的测试人员非常有用,这使得他们更容易过渡到开源。


2.网络驱动(WebDriverIO)


  WebdriverIO是一个基于Node.js的自动化测试框架。它有一个集成的测试运行器,可以为web应用程序和本地移动应用程序运行自动化测试。同时,它可以在WebDriver协议和Chrome Devtools协议上运行,使它对基于Selenium WebDriver的跨浏览器测试或基于Chromium的自动化都有效。由于WebDriverIO是开源的,你可以得到一堆插件来满足你的自动化需求。“Wdio安装向导”使安装简单和容易。


3.Citrus


  Citrus是一个开源框架,您可以使用它自动化任何消息传递协议或数据格式的集成测试。对于任何类型的消息传递,如REST、HTTP、SOAP或JMS,Citrus框架将适合测试消息传递集成。如果您需要与用户界面交互,然后验证后端流程,那么可以将Citrus与Selenium集成。例如,如果您必须单击“发送电子邮件”按钮并在后端验证电子邮件是否已收到,柑橘可以接收此电子邮件或UI触发的JMS通信,并验证后端结果,所有这些都在一个测试中完成。

4.Cypress

  Cypress是一个以开发人员为中心的测试自动化框架,它使测试驱动开发(TDD)成为开发人员的现实。它的设计原则是能够打包和捆绑所有东西,使整个端到端测试体验愉快和简单。Cypress的架构与Selenium不同;Selenium WebDriver远程运行在浏览器外部,而Cypress运行在浏览器内部。这种方法有助于理解浏览器内部和外部发生的一切,从而提供更一致的结果。它不需要您处理对象序列化或在线协议,同时为您提供对每个对象的本机访问。当您将应用程序拉入浏览器时,Cypress可以同步通知您浏览器内发生的每一件事情,这样您就可以本机访问每个DOM元素。它还使得在应用程序中放置调试器变得很容易,这反过来又使开发人员工具的使用变得更容易。

5.Selenium

web应用程序最流行的开源测试自动化框架之一。Selenium还可以作为许多其他测试工具的基础,因为它具有跨平台和跨浏览器的功能。Selenium支持多种编程语言,如Java、C#、PHP、Python、Ruby等。它易于维护,因为它拥有最大的在线支持网络之一。Selenium可以通过广泛的库和api进行高度扩展,以满足每个人的需求和需求。Selenium是测试人员的首选,因为它可以编写更高级的测试脚本来满足各种复杂程度。它为测试编写提供了一个回放工具,无需学习特定的脚本语言。

6. Cucumber

  它是一个跨平台的行为驱动开发(BDD)工具,用于编写web应用程序的验收测试。Cucumber可以快速且容易地设置执行,并允许在测试中重用代码。它支持Python、PHP、Perl、.NET、Scala、Groovy等语言,以易于阅读和理解的格式实现函数验证的自动化。一个好的特性是规范和测试文档都被上传到一个最新的文档中。Cucumber使不熟悉测试的业务涉众更容易阅读代码,因为他们可以轻松地阅读代码,因为测试报告是用商业可读的英语编写的。该代码可以与Selenium、Watir、Capybara等其他框架一起使用。

7.Gauge

  它是一个开源工具无关的测试自动化框架,适用于Mac、Linux和Windows。从事TDD和BDD工作的人会喜欢Gauge专注于创建动态/可执行文档。规范——量规自动化测试是在现有的ide(如visualstudio和Eclipse)中使用C、Java和Ruby的降价语言编写的。Gauge的功能也可以通过对插件的支持进行扩展。它是作为一个BYOT(自带工具)框架开发的。因此,您可以使用Selenium,也可以使用任何其他工具来驱动测试UI或API测试。如果你想要一个可读的非BDD方法来实现自动化,你应该试试Gauge。

8.Serenity

  mber和JBehave等行为驱动开发(BDD)工具集成的基于Java的框架,那么Serenity可能是适合您的工具。它的

如果您正在寻找一个与cu目的是使编写自动化验收和回归测试更容易。它还允许您将测试场景保持在较高级别,同时在报告中容纳较低级别的实现细节。
Serenity充当Selenium WebDriver和BDD工具的包装器。它抽象了许多您有时需要编写的样板代码,这使得编写BDD和Selenium测试变得更容易。Serenity还提供了大量的内置功能,例如处理并行运行的测试、WebDriver管理、截屏、管理步骤之间的状态、促进Jira集成,所有这些都不需要编写一行代码。

9.Carina

  Carina使用流行的开源解决方案构建,如Appium、TestNG和Selenium,这减少了对特定技术栈的依赖。您可以测试移动应用程序(本机、web、混合)、web应用程序、REST服务和数据库。Carina框架支持MySQL、sqlserver、Oracle、PostgreSQL等不同类型的数据库,提供了MyBatis ORM框架实现DAO层的惊人体验。它支持所有流行的浏览器和移动设备,并且在IOS/Android之间重用测试自动化代码高达80%。API测试基于Freemarker模板引擎,它在生成REST请求方面提供了极大的灵活性。Carina是跨平台的,可以在Unix或Windows操作系统上轻松地执行测试。

10.ZTF

  Zentao Testing Framework,简称ZTF,是一款开源自动化测试管理框架。与市面上已有的自动化测试框架相比,ZTF更聚焦于自动化测试的管理功能。ZTF提供了自动化测试脚本的定义、管理、驱动、执行结果的回传、Bug的创建以及和其他自动化测框架的集成。ZTF使用go语言开发,可以支持各种平台。ZTF支持常见的编程语言,您可以选择您喜欢用的语言来开发自动化测试脚本。通过禅道自研的ZTF自动化测试工具,可很好地驱动8种单元测试框架、3种自动化测试框架来执行测试,并把最终结果回传给禅道,进行统一的报告展示。禅道ZTF打通了项目管理和持续集成工具之间的沟壑,贯穿持续集成、持续测试、持续部署等DevOps生命周期的不同阶段。


相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问