zoukankan      html  css  js  c++  java
  • 五大JavaScript 自动化测试框架

    我们正在迈向自动化时代。每一家公司,无论是初创企业还是大型企业,都在努力尽可能高效地将自动化测试纳入其发布周期。原因很简单,因为自动化测试大大减少了验证重复测试场景的工作量。而Java不再被称为只面向开发人员的编程语言。随着自动化测试需求的增加,Java测试框架已经开始广泛使用,一些用于单元测试,而另一些是为E2E(端到端)测试而设计的。

    所以全球的自动化测试人员都非常喜欢这些Java自动化测试框架。卓码总结了目前最流行的五种实用的Java自动化测试框架分享给大家!

    1、Jest

    图源网络:侵删

    被stateofjs调查评为2018年度Java自动化测试框架第一名。Jest由Facebook开发,用于测试Java代码,尤其是使用React JS开发的应用程序。

    图源网络:侵删

    安装的先决条件

    Jest的特别之处在于,它提供了一个不需要任何配置经验的集成框架。这个工具已经可以使用了,如果用户正在使用npm,用户可以通过运行以下命令立即设置它。

    Jest的优点和缺点

    首先是优点:

    (1)使用Jest的最大好处是最小配置和设置的开箱即用体验,因为它附带了一个mock支持断言库。与任何新的测试库一样,测试用例是使用行为驱动的开发方法编写的。用户可以将用户的测试用例放在一个名为_tests_的文件夹中,并开始运行它们。

    (2)Jest被认为是一个有很好文档的、快速执行的Java测试框架。

    (3)Jest提供了一种健壮的开发人员工具,代码更不容易出错。

    该框架还可以通过捕获屏幕截图来执行可视化回归测试。当使用React JS开发应用程序时,该特性对于防止意外导致的UI bug非常方便。它的工作原理是记录呈现组件的屏幕快照,然后与将来呈现的组件进行比较。如果添加了任何新功能,屏幕截图都可以轻松更新。

    Jest的缺点:

    (1)与Jasmine这样的框架相比,它不支持太多的库或工具,这些库或工具有时对于在不支持Jest的ide中调试测试用例非常方便。

    (2)那些对Jest感到不自在的人表示,学习的过程相当艰难。

    (3)使用Jest进行快照测试对于较大的快照文件不太可行。

    2、Mocha

    图源网络:侵删

    Mocha是一个基于java的自动化测试框架,用于测试使用Node.js运行的应用程序。Mocha被评为2018年stateofjs survey Java自动化测试框架第二名。

    图源网络:侵删

    安装的先决条件

    安装非常简单,用户只需要一个工作站,并使用以下命令安装Mocha。

    要进行全局安装,请运行以下命令:

    npm i -全球摩卡。

    如果用户想安装mocha作为开发的依赖项,可以运行npm i -save-dev mocha。

    Mocha的优缺点:

    首先是优点:

    开发人员和测试人员喜欢摩卡有很多原因。

    (1)该应用程序是开源的,并且允许灵活性;

    (2)它可以很容易地支持生成器;

    (3)由于它是旧的,许多教程和文档都可以在网上找;

    (4)使用灵活的报告顺序执行测试用例;

    (5)Mocha帮助您轻松地将异常映射到相关的测试用例。

    Mocha的缺点:

    (1)使用开发人员工具,Mocha可以做得更好;

    (2)随着Jest的出现,摩卡在测试人员社区中的受欢迎程度显著下降;

    (3)摩卡可以在整体性能和机上功能方面做得更好。

    3、Jasmine

    图源网络:侵删

    Jasmine,主要用于异步测试,是一个功能丰富的Java自动化测试框架。应用程序运行在Node.js上,通过连续运行测试用例,允许准确和灵活的bug报告。根据2018年的stateofjs, Jasmine在Java测试框架中排名第三。

    图源网络:侵删

    安装的先决条件

    Jasmine的安装非常简单。你只需要一个能连接互联网的工作站。在cmd/终端中运行以下命令安装Jasmine。

    但是,配置比Jest稍微复杂一些。在运行测试用例之前,用户必须设置并配置test.js文件。

    Jasmine的优点和缺点

    首先是优点:

    (1)Jasmine最大的优点是它可以兼容你选择的所有框架或库,这使它成为最灵活的Java测试框架之一。无论用户想要使用Sinon来模拟或者Chai来断言测试用例,Jasmine都将毫无困难地帮助用户。

    (2)Jasmine的社区非常大,用户将获得各种各样的支持,包括库、博客文章或视频教程。

    (3)随着社区的扩大,Jasmine的学习曲线非常平滑。用户也会得到令人印象深刻的文档。

    提供优雅的编程风格和模式。

    Jasmine的缺点:

    (1)Jasmine需要很多配置。在使用mock框架或断言库之前,用户必须显式地选择它。如果用户的项目需要这种灵活性,那么它可能很有用。如果没有,配置过程可能有点令人沮丧。

    (2)Jasmine通过使用Jasmine -snapshot库支持快照测试。然而,集成它可能有点困难。

    jest的流行导致Jasmine的受欢迎程度下降。

    4、Nightwatch

    图源网络:侵删

    对于自动化的网络应用程序测试,尤其是使用Node.js开发的应用程序,守夜人是一个强大的自动化框架,它使用Selenium WebDriver API,允许用户执行端到端测试。守夜人的主要目标是简化编写自动化测试用例的过程,并帮助在用户的开发周期中建立持续的集成。

    安装的先决条件

    因为Nightwatch是用来测试Node.js应用程序的,所以用户的工作站应该安装了Node.js的最新稳定版本。另外,安装npm,因为它是安装框架所必需的。

    为了在本地运行框架,用户还需要一个独立的Selenium服务器和WebDriver API。这将帮助用户使用Firefox或Chrome在本地测试应用程序。

    Nightwatch的优点和缺点

    首先是优点:

    (1)首先,设置非常简单。

    (2)用户只需要导入Selenium库。

    (3)这个社区相当大,如果你需要任何关于设置或编写测试用例的帮助,可以(4)通过博客和教程的形式获得很多资源。

    (5)语言非常简单。你只需要一点面向对象编程的基础知识。

    如果测试人员属于一个Java团队,后端团队成员可以轻松获取知识,并帮助测试人员编写自动化测试用例,从而提高团队的整体生产力。

    Nightwatch的缺点:

    (1)测试用例不像其他框架那样容易阅读。语法不清楚,用户也不可能对每一步都写清楚描述。用户可以以注释的形式来完成它,但是如果任何测试用例失败,它将都不会显示在日志中。

    (2)虽然用户可以为每一步添加一条清晰的错误消息,但要找出哪里出错了,还是会比较困难。

    5. Puppeteer(Library)

    图源网络:侵删

    Puppeteer是另一个基于Node.js的自动化测试库,它提供了一个帮助用户通过覆盖标准开发工具协议来控制铬的API。许多可以在浏览器中手动完成的场景可以在木偶师的帮助下自动完成

    安装的先决条件

    Puppeteer将要求用户的工作站拥有最新版本的Chrome和Chromium。用户还需要在系统中安装纱线或npm。js也是必须的,因为这个框架是用来测试基于Node.js的web应用程序的。

    Puppetee的优点和缺点

    首先是优点:

    (1)使用操纵器编写的自动化脚本覆盖了开发工具协议应用编程接口。调用一个应用编程接口将会自动完成,而不是手工制作网络套接字负载

    (2)推出chrome

    (3)在浏览器中打开一个新标签

    (4)导航到所需的测试站点。

    (5)捕捉截图并关闭浏览器。

    Puppeteer允许用户模拟资源,从而避免了可靠性、一致性和速度的问题。用户可以操作外部资源,比如CSS选择器,以使用户的特定测试用例执行得更快。

    Puppetee的缺点:

    (1)Puppeteer最大的缺点是只能在Chrome上运行。如果用户的项目要求应用程序是跨浏览器兼容的,那么用户将不得不依赖于NightWatch或其他框架来跨其他浏览器测试应用程序。

    (2)如果用户的项目要求应用程序跨浏览器兼容,用户将不得不依靠NightWatch或其他框架来测试跨其他浏览器的应用程序。

    卓码列出了用于测试特定的基于web应用程序的框架的框架,以及用于自动化测试任何基于java的web应用程序的通用应用程序。大家可以根据自身的需求选择适合的测试框架。

  • 相关阅读:
    mysql 数据类型总结
    #微信小程序子传父 #小程序子组件向父组件传值 小程序子组件触发父组件中的事件
    #最近看到了一个写的很棒的系列文章专栏
    《MySQL45讲》读书笔记(四):索引
    《MySQL45讲》读书笔记(六):数据库事务概述
    《MySQL45讲》读书笔记(一):三大日志概述
    Java基础篇(05):函数式编程概念和应用
    数据采集组件:Flume基础用法和Kafka集成
    架构设计:数据服务系统0到1落地实现方案
    Java基础篇(04):日期与时间API用法详解
  • 原文地址:https://www.cnblogs.com/zgq123456/p/12668981.html
Copyright © 2011-2022 走看看