自动化测试框架 2019_2019年用于自动化的5个最佳Java测试框架

自动化测试框架 2019

几十年来,Java一直是开发应用程序服务器端层的首选编程语言。 尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试,但随着时间的推移和测试的发展,当自动化测试不断增长时,已经开发了许多基于Java的开源框架,并且JUnit在验证和业务逻辑方面。 在这里,我将讨论2019年用于使用Selenium WebDriver和Java执行测试自动化的5个顶级Java测试框架。 我还将重点介绍这些顶级Java测试框架的独特之处。

Kent Beck和Erich Gamma开发人员JUnit,它是xUnit的一个实例。 其背后的主要目的是使Java开发人员能够编写脚本并执行可重复的测试用例。 它通常用于测试一小段代码。 您还可以通过将JUnit与Selenium WebDriver集成以进行Java测试自动化来对网站执行自动化测试。 每当添加任何新代码时,都将要求您重新执行整个测试用例,并确保没有破损。

有哪些先决条件?

该框架与Selenium WebDriver for Java高度兼容,因此,JUnit是基于Java的框架,因此,作为某些先决条件,您需要

  • 在您的工作站中安装了最新版本的JDK。
  • 下载最新版本的JUnit并设置环境。
  • 对面向对象的编程语言(尤其是Java)的应用程序开发有很好的了解。

使用JUnit的优缺点?

JUnit有几个优点。

  • 在受测试驱动的环境中工作的开发人员发现它非常有益,因为他们被迫阅读代码并查找是否存在异常。
  • 尽早发现错误,从而使代码更可靠。
  • 开发更具可读性且无错误的代码可以增强置信度。
  • 使用最新版本的JUnit(版本4),可以轻松识别异常。 甚至,您也可以执行用旧版JUnit编写的测试用例。
  • 您也可以将其与Java 5或更高版本一起使用。
  • 该框架无法执行依赖关系测试。 那就是我们需要TestNG的地方。

JUnit的唯一缺点是

  • 该框架无法执行依赖关系测试。 那就是我们需要TestNG的地方。

JUnit是您的最佳Java测试框架吗?

JUnit和TestNG都完成相同的工作。 它们的功能几乎相同,只是在两个框架中都没有使用JUnit进行依赖测试,并且参数化测试的实现过程也不相同。 另外,由于JUnit长期使用,因此有更好的社区支持,它已被定义为使用基于Java的Selenium WebDriver for Java应用程序进行单元测试的标准。 尽管TestNG的用户很少,但社区仍然很大,并且每天都在增长。 因此,我们可以得出结论,对于Java测试框架,在TestNG或JUnit之间进行选择完全取决于应用程序的性质和要求。

如果您希望开始使用JUnit作为Java测试框架,请按照以下逐步过程进行操作,以使用JUnit&Selenium进行自动化测试以实现浏览器兼容性。

我们都知道行为驱动开发或BDD。 这种测试类型以对业务用户透明的方式描述了验收测试。 JBehave是用于BDD测试的另一个Java测试框架,主要与Selenium WebDriver for Java一起使用。 引入JBehave的主要目的是使新手可以轻松理解和熟悉BDD。 这是一种设计理念,它使应用程序的测试阶段更多地基于其行为。

有哪些先决条件?

使用JBehave的理想方法是与Eclipse集成。 为此,除了上面的JDK1.7和Indigo之上的任何Eclipse IDE,您将需要几个jar文件,例如

  • Junit-4.1.0.jar
  • Jbehave-core-3.8.jar
  • Commons-lang-2.4.jar
  • Paranamer-2.5.jar
  • Freemarker-2.3.9.jar
  • Org.apacje.commons.io.jar
  • Org.apache.commons.collections.jar
  • Plexus-utils-1.1.jar

JBehave的优缺点

像所有其他BDD测试框架一样,JBehave在许多方面也具有优势。

  • 通过使从事相似规格的不同项目的不同开发团队之间更好地协调,可以达到行为驱动开发的最重要目的。
  • 由于规范的格式相似,因此项目经理和利益相关者可以更好地了解开发团队和质量检查团队的输出。
  • 由于JBehave具有详细的推理和思考功能,因此产品具有更好的规格。
  • JBehave使用半正式语言,并且还具有领域词汇表,该词汇表有助于在团队结构中保持一致的行为。

嗯,与其他任何BDD测试工具一样,JBehave只有一个缺点。

  • BDD测试工具的成功主要取决于项目中不同成员,利益相关者,开发人员,测试人员以及组织管理层之间的沟通。 缺乏沟通可能会导致无法回答的问题和疑问,最终可能导致错误的应用程序或不满足业务要求的应用程序,从而导致所有各方互相指责。

JBehave是适合您的最佳Java测试框架吗?

JBehave的工作方式与Serenity相同。 但是,如果您打算提高自动验收测试的效率,则最好将Serenity与JBehave集成在一起,以利用更好的测试体验。 这是因为Serenity的核心概念基于BDD开发,并且还使用户能够编写功能强大且丰富的测试报告。 我们将在下一节中对此进行更多讨论。

Serenity是一个用于行为驱动测试的开源库。 该框架可帮助您编写结构合理且维护更完善的验收标准。 它扩展了JUnit和WebDriver的功能。 最初,它被称为修昔底德。 更名的原因仅仅是发音困难。 仍然可以在引用时使用旧名称。

安装Serenity的前提条件是什么?

由于该框架是基于Java的,因此您显然需要Java或任何其他面向对象的编程语言的知识和经验。 除此之外,在您的工作站中,您将需要

  • JDK 5或更高版本。
  • Maven 3.0或以上任何版本。
  • IDE工具–所有开发人员通常首选Eclipse,因为Maven和Eclipse的组合更易于使用。

宁静的利与弊

让我们看一看Serenity带给行为驱动开发世界的优势。

  • 该框架可帮助测试人员创建REST服务的测试用例。
  • 用户不必花费大量时间来维护或构建自己的自动化框架。
  • 它在测试用例的定义和理解及其实现方式之间保持平衡,而不是界限。
  • 它可以与许多自动化框架(例如Selenium,JBehave),基于Java的高级开发框架(例如Spring)以及甚至连续集成工具(例如JIRA)进行集成。

Serenity的唯一缺点就像JBehave。 为了利用其支持行为驱动开发的完整功能,需要在项目参与者之间进行持续的沟通。

Serenity是最适合您的Java测试框架吗?

该工具主要用于报告验收标准。 但是,使用Serenity编写的报告比JBehave或任何其他BDD框架提供的信息丰富得多。 它还可以帮助开发人员编写质量更高的自动化测试用例场景,并为RestAssured和Selenium WebDriver提供支持,从而使测试人员可以更快,更轻松地编写基于自动化的验收测试标准。

Java测试框架

Cedric Beust创建了TestNG,这是一个受JUnit启发的基于Java的开源自动化测试框架。 但是,它功能更强大。 NG表示TestNG中的下一代。 该框架旨在在集成期间以更好的方式执行。 该框架为开发人员提供了诸如排序,分组和参数化之类的功能,从而使新的测试用例更加灵活,并消除了先前使用的框架的缺点。

安装TestNG的前提条件

为了安装TestNG,您将需要

  • 系统中已安装最新版本的JDK。
  • 最新版本的Eclipse
  • Java或任何其他面向对象的编程语言的知识和动手经验

TestNG的优缺点

除了克服旧框架的缺点之外,TestNG还具有许多优点。

  • 该框架使您可以在多个代码段上运行并行测试。
  • 在执行测试用例期间,您可以生成一个HTML报告。
  • 测试用例可以根据优先级进行分组和安排。 仅通过要求框架运行数据库测试或前端测试或任何您想要的东西,执行测试就容易得多。
  • 您可以参数化数据并使用批注轻松设置优先级。

唯一的缺点是

  • 这取决于您的要求。 如果您的项目不需要测试用例的优先级,则可能不希望使用TestNG。 此外,设置TestNG需要一些时间。

TestNG是最适合您的Java测试框架吗?

尽管JUnit执行与TestNG相同的功能,但是它具有一定的局限性。 当单独进行测试时,JUnit是完美的选择。 但是,当存在依赖性时,您将无法控制首先执行哪个测试。 TestNG允许您以所需顺序运行测试用例,从而为您提供帮助。 此外,它还有助于参数化测试。 尽管此功能已在JUnit 4.5中提供,但TestNG更为有效。 如果您的项目很复杂,并且可能需要一百多个测试用例,那么花一些时间并设置TestNG而不是依赖于JUnit是理想的选择。

如果您不熟悉TestNG,那么这里是完整的指南,用于运行您的第一个TestNG自动化脚本,以使用带有Java的Selenium WebDriver进行自动跨浏览器测试。

Selenide由Selenium提供支持,是一种流行的工具,用于为Java应用程序编写稳定,精确和富于表现力的UI测试用例。 对现代Web技术(如Ajax)进行测试具有一定的复杂性,例如超时。 WebDriver是用于UI测试的流行工具,但缺少处理超时的功能。 Selenium化物以简单的方式处理所有这些问题。 另外,它更容易掌握和学习。 您不需要Google的任何要求,也可以搜索教程。 您需要做的只是专注于业务逻辑,仅需执行几行简单的代码即可完成您的工作。

使用Selenium化物的前提条件是什么?

Selenide的安装非常简单。 如果使用的是Maven,则需要在pom.xml文件中添加以下几行。

 <dependency> <groupId>com.codeborne< /groupId > <artifactId>selenide< /artifactId > <version>5.1.0< /version > <scope> test < /scope >  < /dependency > 

如果使用的是Ivy,则需要在ivy.xml文件中添加

 <ivy-module> <dependencies> <dependency org= "com.codeborne" name= "selenide" rev= "5.1.0" /> < /dependencies >  < /ivy-module > 

就像这样,该框架已为您准备开始测试。

Selenium化物的优缺点?

在服务器端使用Java的应用程序的前端层中,测试人员面临的最常见问题是超时。 您编写的测试用例目前可能运行良好,但是几天后,也许一些Ajax请求将比现在花费更多的时间,或者某些Javascript的运行速度会变慢。 此外,您的系统可能同时运行另一个进程,从而导致测试用例失败。 更不幸的是,您可能需要花费数天的时间才能找出这些问题的根源。 Selenium化物可以帮助您

  • 简洁的测试用例编写过程消除了超时问题。
  • 支持测试使用AngularJS开发的应用程序
  • 减少了传统Selenium工具使用的大多数命令。

到目前为止,我们还没有发现使用Selenium化Selenium的明显缺点。 如果您发现任何可能影响您工作的限制,请告诉我们。

Selenide是最适合您的Java测试框架吗?

对于UI测试,除了Selenide的父框架Selenium WebDriver之外,没有更好的基于Java的框架。 显然,WebDriver无法解决由Ajax超时,JavaScript运行缓慢或任何需要花费时间加载的动态内容引起的问题。 为了克服问题,我们先前在测试案例中使用了“ wait_until”或“ sleep”方法。 使用Selenide,我们不再需要考虑那些问题。 仅关注业务逻辑,测试用例就可以很好地实现其目的。

如果您打算选择Selenide作为用于自动化测试的Java测试框架,那么这里的指南可帮助您使用Selenide,IntelliJ和Maven运行Selenium自动化测试。

在当前的敏捷时代,开发人员还需要参与测试。 知识和测试的重要性是使专业Java开发人员与业余爱好者区分开来的。 不必一定是专家,但是至少您应该具有编写自动验证代码的测试用例的基本知识。 在本文中,我们介绍了5种工具,这些工具为应用程序的UI测试,单元测试和BDD测试提供了全球开发人员的首选。 根据比较,我们可以得出结论,如果您真诚地工作并且想成为专家开发人员和测试人员,那么上面提到的工具将对您的日常任务有用。

Java测试框架

翻译自: https://www.javacodegeeks.com/2019/03/top-5-java-test-frameworks-automation-2019.html

自动化测试框架 2019

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

X86汇编语言中的registers相关

0、写在前面 本文中总结于王爽老师的汇编语言&#xff0c;建议有兴趣的都买一本&#xff0c;以支持王爽老师的辛勤付出。再者&#xff0c;这本书写的确实很nice。 8086CPU共有14个registers&#xff1a;AX&#xff0c; BX&#xff0c; CX&#xff0c; DX&#xff0c; SI&#…

代码流程图生成器_【进阶Python】第五讲:迭代器与生成器

点击蓝字关注我迭代是Python中常用且非常强大的一个功能&#xff0c;它可以用于访问集合、列表、字符串、字典等数据结构的元素。我们经常使用循环和条件语句&#xff0c;我们也清楚哪些是可以迭代访问&#xff0c;但是具体它们之间有什么有什么异同之处&#xff1f;有哪些特点…

生成最简单的验证码图片的Java代码

后端代码&#xff1a; package priv.lwx.servlet.sl.web; /*** description** author liaowenxiong* date 2022/3/25 09:56*/import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.…

cognito_将Amazon Cognito与单页面应用程序(Vue.js)集成

cognito在本文中&#xff0c;我们将研究使用OAuth协议通过Amazon Cognito对单页应用程序&#xff08;使用Vue.js构建&#xff09;进行身份验证。 在上一篇文章中&#xff0c;我们将服务器端应用程序与Amazon Cognito集成在一起。 搭建单页应用程序 我们将使用vue-cli创建一个空…

段描述符表(GDT+LDT)的有感

【0】写在前面 要知道&#xff0c;在汇编中&#xff0c;代码的装入顺序决定了在内存中的地址位置。所有的代码或者数据都在硬盘上&#xff0c;当调试或者启动的时候&#xff0c;加载到内存&#xff1b;当需要对数据进行处理的时候&#xff0c;我们通过将数据从内存载入到regis…

地理信息系统概论_地理信息系统概论黄杏元第3版配套练习题库——才聪学习网...

黄杏元《地理信息系统概论》(第3版)配套题库【考研真题精选&#xff0b;章节题库】一、选择题1完整的GIS主要由四个部分构成&#xff0c;即计算机硬件系统、计算机软件系统、(  )和系统管理操作人员。[杭州师范大学2018年研]A&#xff0e;网络B&#xff0e;用户C&#xff0e;…

PO/BO/VO/DTO/POJO/DAO/DO

文章目录DO&#xff08;Domain Object&#xff09;DO&#xff08;Data Object&#xff09;POVOBODTOPOJODAOJavaBeanEJBEntity应用程序的分层设计MVC业务分层阿里开发手册关于POJO类的命名规范总结参考文章DO&#xff08;Domain Object&#xff09; Domain Object&#xff0c;…

openshift_OpenShift Origin中的Kubernetes Spark运算符(第1部分)

openshift本系列有关Radanalytics.io的Kubernetes Spark运算符 OpenShift起源 。 它是一个开源的运营商来管理 Apache Spark集群和应用程序。 为了在OpenShift Origin上部署操作员&#xff0c;第一次需要为其克隆GitHub存储库&#xff1a; git clone https://github.com/rad…

小程序二级页面tabbar_小程序页面推广踩坑记

前几天&#xff0c;团队里有个小伙伴遇到一个问题&#xff0c;卡壳了大半天。我觉得这个例子值得拿出来分享给大家。希望大家以后遇到类似的问题能顺利绕过这种坑。业务场景很常见&#xff0c;就是为了配合小程序中特定页面的推广&#xff0c;区分推广渠道和人员&#xff0c;逐…

转移指令jmp和跳转指令call

【-1】写在前面 以下内容文字描述来自于 王爽老师的《汇编语言》教材&#xff0c;建议大家都买一本&#xff0c;哈哈。不是我打广告&#xff0c;确实人家写的好&#xff0c;应该支持。我只是附上了自己的图片和理解而已。 【0】先上干货 只修改ip&#xff0c;称为段内转移&a…

jmeter负载测试测试_使用Apache JMeter负载测试Web应用程序

jmeter负载测试测试Apache JMeter是用于模拟Web应用程序上的用户负载以测试性能的出色工具。 您可以通过指定用户数量和请求间隔来轻松地构建测试计划&#xff0c;然后JMeter将为每个用户生成一个线程并访问您的Web应用程序。 在测试结束时&#xff0c;您将获得一份性能摘要报告…

Windows下安装Nutch

Nutch安装 一、需求部份 a) Nutch是Java开发的所以需要下载Java JDK 下载地址http://java.sun.com/javase/downloads/index.jsp b) Nutch的演示搜索页面是Jsp的需要Tomcat做服务器 下载地址&#xff1a;http://jakarta.apache.org/tomcat/ c) Nutch的脚本都是用Linux的Shell写的…

python子进程关闭fd_gpg –passphrase-fd无法使用python 3子进程

以下脚本encrypt_me.py(modified from another post)使用gpg加密自身并以装甲形式打印出密文.但它只适用于python2.7但不适用于python3&#xff1f;你知道它在python3上运行时有什么问题吗&#xff1f;import subprocessimport shleximport osimport sysin_fd, out_fd os.pipe…

程序编码(机器级代码+汇编代码+C代码+反汇编)

【-1】相关声明 本文总结于csapp&#xff1b; 了解详情&#xff0c;或有兴趣&#xff0c;建议看原版书籍&#xff1b;【0】程序编码 GCC调用了一系列程序&#xff0c;将源代码转化成可执行代码的流程如下&#xff1a; &#xff08;1&#xff09;C预处理器扩展源代码&#xf…

angular1.2.27_Angular 8 + Spring Boot 2.2:立即构建一个CRUD应用程序!

angular1.2.27“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 如果您已经成为Java开发人员超过15年&#xff0c;那么您可能还记得何时…

ssm中怎么用location.href跳到controller层_聊聊自动驾驶中的功能开发

在知乎上看过不少大牛写的自动驾驶技术介绍文章&#xff0c;大多谈到的是AI, Deep Learning, Computer Vision等等感知(Perception)层面的。但在各个传感器(雷达、摄像头、激光雷达等)探测到目标信息及周围环境后&#xff0c;车辆该如何做出反应&#xff1f;自动驾驶的大脑该怎…

MyEclipse详细使用教程

第一部分MyEclipse的基本使用 一&#xff0e;提示&#xff1a;MyEclipse的透视图按钮&#xff1a;可以切换不同的透视图&#xff08;位于右上角&#xff09; 1.建立一个工程 ----File—new—project—选项含有Javaproject&#xff0c;webproject等等—输入工程名字如myproject&…

控制语句(if-else+循环+switch)汇编规则

【1】说说条件码 最常用的的条件码有&#xff1a; CF&#xff1a;进位标志 &#xff08;无符号溢出&#xff09;ZF&#xff1a;零标志SF&#xff1a;符号标志&#xff08;结果为负数&#xff09;OF&#xff1a;溢出标志 &#xff08;补码溢出&#xff0c; 有符号溢出&#xf…

zxing qr区域判断_如何在Java中使用Zxing和JFreeSVG创建QR Code SVG?

zxing qr区域判断在本文中&#xff0c;我们将研究如何使用Zxing QR代码生成库和JFreeSVG库在Java中创建QR Code SVG图像。 QR码生成 下面的代码使用Zxing库创建一个表示QR Code的java.awt.image.BufferedImage对象&#xff1a; public static BufferedImage getQRCode(String …

审批流_怎样让审批工作流和应用数据分离?

在企业行政管理中&#xff0c;审批是最常遇到的场景。传统管理中&#xff0c;人们会有纸张审批&#xff0c;而现在市场上已有大量的线上审批软件&#xff0c;他们帮助企业完成审批电子化&#xff0c;审批速度更快&#xff0c;信息也能留档。然而大部分审批软件都不够灵活&#…