Python自动化测试框架有哪些?(总结几种)-程序员宅基地

技术标签: 经验分享  python  自动化测试  软件测试  自动化  接口测试  职场和发展  程序人生  

目录

导读:

Robot Framework

Robot的优缺点是什么。

Robot Framework是最适合您的Python测试框架吗?

pytest

pytest的优缺点是什么?

Pytest是最适合您的Python测试框架吗?

UnitTest

unittest的优点和缺点是什么?

PyUnit是您的最佳Python测试框架吗?

总结


如果觉得小编写得还不错的同学可以点点关注吗。

(福利)软件测试面试宝典获取请在评论区留言或者关注公众号:阿里大叔说测试

导读:

随着Python语言的使用越来越流行,基于Python的测试自动化框架也越来越流行。在项目选择最佳框架时,开发人员和测试人员会有些无法下手。做出选择是应该判断很多事情,框架的脚本质量,测试用例的简单性以及运行模块并找出其缺点的技术。这篇文章总结了测试自动化领域,适合Web端自动化框架(基于Python语言)以及它们相对于其他方面的优缺点。因此,可以帮助一些人根据需要和实际情况选择合适的的Python框架进行测试自动化。

Robot Framework

Robot Framework主要用于测试驱动的开发以及验收测试,它是最好的测试框架之一。虽然是用Python开发的,它也可以运行的IronPython,这是.NET为基础的和基于JavaJython的。Robot Framework作为Python框架可在所有平台上兼容:Windows,MacOS或Linux。

前提条件

  • 首先,只有安装了Python 2.7.14或更高版本的Python,您才能使用Robot Framework(RF)。
  • 您还需要安装“pip”或其他python软件包管理器。
  • 最后,必须下载一个IDE。在开发人员中流行的工具是PyCharm社区版。

Robot Framework的优缺点是什么?让我们看一下与其他Python框架相比,作为测试自动化框架的

Robot的优缺点是什么。

优点

  • 通过使用关键字驱动的测试方法,它可以帮助测试人员轻松创建可读性很高的测试用例,从而使自动化流程更加简单。
  • 测试数据语法可以轻松使用并组合。
  • 它由通用工具和测试库组成,具有完整的生态系统,可以在单独的项目中使用各个功能。
  • 该框架具有许多API,具有很高的可扩展性。
  • Robot Framework框架可通过Selenium Grid运行并行测试,但需要自行开发相关功能。

缺点

  • 虽然Robot Framework听起来很方便,但是在创建自定义HTML报告时却很不方便。
  • Robot Framework框架的另一个缺陷是自身并行测试能力不足。

Robot Framework是最适合您的Python测试框架吗?

如果您是自动化领域的初学者,并且在开发方面经验较少,那么将Robot Framework用作顶级Python测试框架比pytest或pyunit更容易使用,因为它具有丰富的内置库并且使用更容易的面向测试的DSL。但是,如果要开发复杂的自动化框架,最好切换到pytest或任何其他涉及Python代码的框架。

pytest

pytest用于各种软件测试,是测试自动化的另一个顶级Python测试框架。该工具是开源的,易于学习,可以被质量保证团队、开发团队以及个人实践或者开源项目使用。由于其“断言重写”等有优秀的功能。相当一部分项目已经从unittest(Pyunit)切换为pytest。

前提条件

除了具有Python的使用知识外,pytest不需要任何复杂的东西。您所需要的只是一个具有命令行界面,python软件包管理器和开发IDE的工作桌面。

pytest的优缺点是什么?

优点

  • 在pytest到来之前,大多数人将其测试内容包含在大型类中。随着pytest带来了革命,使得以更紧凑的方式编写测试用例成为现实。
  • Pytest将所有值存储在测试用例中,测试完成之后通知哪个值断言失败和哪个值被断言。
  • 由于不需要太多模板代码,因此测试用例更易于编写和理解。
  • 在pytest中,可以通过讲功能模块化帮助覆盖所有参数组合而无需重写测试用例。
  • pytest的丰富实用的插件,使该框架可扩展性极高。例如,pytest-xdist可以用于执行并行测试,而无需使用其他测试运行程序。单元测试也可以参数化,而无需重复任何代码。

缺点

  • pytest使用规范和语法意味着开发者必须考虑兼容性。你方便地编写测试用例,但比较难将这些测试用例与任何其他测试框架一起使用。

Pytest是最适合您的Python测试框架吗?

必须首先学习一种成熟的语言,但是一旦掌握了这种语言,您将获得所有技能点,例如静态,代码分析,对多个IDE的支持以及最重要的是编写有效的测试用例。对于编写功能测试用例和开发复杂的框架,它比unittest更好,但是如果您的目标是开发简单的框架,则它的优势与Robot Framework有点相似。

UnitTest

Unittest或PyUnit是Python自带的用于单元测试的标准测试自动化框架。它受到JUnit的极大启发。基类TestCase提供断言方法以及所有设置规范。TestCase子类中每个方法的名称均以“test”开头。这使它们可以作为测试用例运行。您可以将加载方法和TestSuite类用于该组并加载测试。您可以一起使用它们来构建自定义的测试运行器。就像使用JUnit进行Selenium测试一样,unittest也可以使用unittest-sml-reporting并生成XML报告。

前提条件

几乎没有前提条件,因为Python默认情况下自带unittest。要使用它,您将需要python框架的标准知识,并且如果您想安装其他模块,则需要安装pip以及一个IDE进行开发。

unittest的优点和缺点是什么?

优点

作为Python标准库的一部分,使用Unittest有多个优点。

  • 开发人员不需要安装任何其他模块,因为该模块随附了该模块。
  • Unittest是xUnit的派生产品,其工作原理类似于其他xUnit框架。熟悉的语法和规范会让初学者觉得轻松一些。
  • 可以以更简单的方式运行各个测试用例,需要做的就是在终端上指定名称。输出也很简洁,在执行测试用例时更加灵活。
  • 测试报告在毫秒内生成。

缺点

  • 通常,snake_case用于命名python代码。但是由于该框架从Junit中获得了很多启发,因此传统的camelCase命名方法仍然存在。这可能会令人感到困惑和混乱。
  • 测试代码的会变得难以阅读,因为它过多地支持抽象。

PyUnit是您的最佳Python测试框架吗?

pytest引入了某些惯用作法,使测试人员可以以非常紧凑的方式编写更好的自动化代码。尽管unittest是默认的测试自动化框架,但是它的工作原理和命名约定与标准Python代码略有不同,这使它不是Python自动化测试的首选框架。

总结

在上面的内容中,我们讨论了基于不同测试过程的Python框架。pytest,Robot框架,单元测试用于功能和单元测试。我们可以得出结论,对于功能测试,pytest是最好的。但是,如果您不熟悉基于python的自动化测试,那么Robot Framework是入门的绝佳工具。尽管功能有限,但是它将使您轻松地走上正轨,快速产出效果明显。

如果觉得小编写得还不错的同学可以点点关注吗。

(福利)软件测试面试宝典获取请在评论区留言或者关注公众号:阿里大叔说测试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Liuyanan990830/article/details/125085281

智能推荐

2019年电赛D题《简易电路特性测试仪》全过程-程序员宅基地

文章浏览阅读2.5w次,点赞74次,收藏457次。2019年全国大学生电子设计大赛D题《简易电路特性测试仪》硬件部分及故障分析_简易电路特性测试仪

大话PCIe:BAR空间和TLP_pcie核进行多个bar空间读写-程序员宅基地

文章浏览阅读2.7k次,点赞5次,收藏32次。大话PCIe:BAR空间和TLP。上一篇文章中写到每个PCIe的function都有自己的configuration space,其实就是配置寄存器了(这个当然是要有的了,不然软件要怎么玩?只不过PCIe的配置寄存器要通过tlp才能去访问)。其实PCIe设备是有自己独立的一套内部空间,不仅仅是配置空间,包括每个设备提供哪些I/O地址,memory地址。而BAR(Base Address Regis_pcie核进行多个bar空间读写

如何用简单的步骤为大量视频添加srt字幕_视频生成srt字幕-程序员宅基地

文章浏览阅读29次。随着移动互联网的高速发展,视频内容已经成为人们获取信息和娱乐的首选方式之一。但是,如何制作一部让人眼前一亮的视频呢?其中一个重要的因素就是添加字幕。字幕不仅可以帮助观众更好地理解视频内容,还可以增加视频的视觉效果和震撼力。那么,如何批量给大量视频批量添加srt字幕呢?以下是具体的操作方法!_视频生成srt字幕

netty实现websocket聊天并发送文件_websocket实现聊天,图片,文件发送-程序员宅基地

文章浏览阅读1.6k次。1.实现了发送文字聊天 用户上下下线自动更新聊天列表 网页保存聊天记录2.发送文件 最大支持30兆 ,代码中可修改3.浏览器通知,https下发送文件的实现思路是在文件前200个字节拼接发送人的信息以及文件名 不够200字节用&填补后台代码在w3cschool的基础上修改的效果图如下启动成功后访问http://localhost:7633/chat.htm..._websocket实现聊天,图片,文件发送

习题8:编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。_编写一个控制台应用程序调用getservbyport()查询并显示本机上所有的使用udp协议的服务的-程序员宅基地

文章浏览阅读8k次,点赞3次,收藏20次。 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。2) 再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。3) 在Main方法中分别创建类A和类B的对象,并分别调用MyMethod_编写一个控制台应用程序调用getservbyport()查询并显示本机上所有的使用udp协议的服务的名称及端口号

使用cmd命令,运行java正常,无法运行javac_cmd只能运行javac不能运行java-程序员宅基地

文章浏览阅读3.9k次。今天在装jdk时,出现java能正常运行,而显示javac不是内部或外部命令,也不是可运行的程序或批处理文件。原因是我在装jdk时将jdk和jre装到了一个文件夹,卸载之后重新装了一遍就好了。..._cmd只能运行javac不能运行java

随便推点

标准库`random`函数大全:探索Python中的随机数生成_random标准库函数-程序员宅基地

文章浏览阅读3.4k次,点赞36次,收藏23次。随机数在计算机科学和数据科学领域中扮演着重要角色,Python的标准库中提供了`random`模块,用于生成各种随机数。本篇博客将深入探讨`random`模块的各种函数,以及它们的应用场景和代码示例。_random标准库函数

基于Android的VoIP系统实现原理_android voip forward-程序员宅基地

文章浏览阅读4.2k次。VoIP(Voice over Internet Protocol)即首先数字化语音信号并压缩成帧,转换为IP数据包在网络上传输,以此完成语音通话的业务,是一种利用IP协议传输语音数据的、新兴的通信技术。  随着我国三网融合的推进,VoIP与IPTV(Interactive Personality TV)一起成为这一庞大工程的重要标志。而目前手机中,VoIP的解决方案并不是很多,特别是_android voip forward

XShell连接虚拟机输入命令卡顿问题解决_redhat9连接xshell连接虚拟机容易卡顿-程序员宅基地

文章浏览阅读2.3k次,点赞20次,收藏6次。第一步:打开会话管理器第二步:选中正在使用的会话,鼠标右键选择属性第三步:定位到【连接】->【ssh】->【隧道】,选择【隧道】第四步:将【转发X11连接到(X)】复选框取消掉最后一步:点击确定,重新连接图片:..._redhat9连接xshell连接虚拟机容易卡顿

如果第一次启动使用ZooKeeper时,没注意用root用户启动了,生成的zookeeper.out文件权限就会改变,如果之后再使用普通用户去启动的话就会没有权限-程序员宅基地

文章浏览阅读226次。ZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfgStarting zookeeper ... /usr/local/zookeeper-3.4.13/bin/zkServer.sh: line 140: ./zookeeper.out: Permission deniedSTARTED_zookeeper.out文件

南阳理工OJ_题目91 阶乘之和_南阳理工oj91-程序员宅基地

文章浏览阅读629次。//用n从9的阶乘开始向前减 #include using namespace std;int main(){ int T; int a[] = {1, 2, 6, 24, 120, 720, 5040, 40320, 362880}; cin >> T; while(T--) { int n; cin >> n;_南阳理工oj91

B2B,B2C,C2C,C2B,B2G_c2b网站代表-程序员宅基地

文章浏览阅读2.8w次,点赞4次,收藏7次。B2B、C2C、B2C B2B:B2B(Business To Business)是指一个市场的领域的一种,是企业对企业之间的营销关系。电子商务是现代B2B marketing的一种具体主要的表现形式。它将企业内部网,通过B2B网站与客户紧密结合起来,通过网络的快速反应,为客户提供更好的服务,从而促进企业的业务发展。 B2B模型 简介 目前基于互联网的B2B_c2b网站代表

推荐文章

热门文章

相关标签