使用 Selenium 和 TestNG 进行编程式测试

简介:

Testng与junit对比
  1. 总体概念
  TestNG,即Testing, Next Generation,下一代测试技术,是一套根据JUnit 和 NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。
  2. 介绍
  TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器)。
  编写一个测试的过程有三个典型步骤:
  * 编写测试的 业务逻辑并在代码中插入TestNG annotation
  * 将测试信息添加到testng.xml文件或者build.xml中
  * 运行TestNG
  在欢迎页面上可以找到快速入门示例。
  下面是这篇文档使用的概念:
  * suite由xml文件描述。它包含一个或多个测试并被定义为标签
  * test由描述并包含一个或者多个TestNG类
  * TestNG类是包含至少一个TestNG annotation的java类,由标签描述并包含一个或多个测试方法
  * 测试方法是源文件中带有@Testd注释的java方法
  TestNG测试可以被@BeforeXXX 和 @AfterXXX annotations配置,容许在特定点的前后执行一些java逻辑,这些点上面已经列出。
  这份手册的剩余部分将讲述以下内容:
  * 所有的annotation列表并带有简短说明,为TestNG的多种功能性提供参考, 你可能需要参考为每个annotation提供的代码片段来学习细节。
  * testng.xml文件描述,它的语法和如果指定它。
  * 多个特性的详细列表和怎样结合annotation和testng.xml来使用它们
  *
  注:上面的内容很简短,但是请注意其中的一些细节。
  1. TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试
  这个是TestNG设计的出发点,不仅仅是单元测试,而且可以用于集成测试。设计目标的不同,对比junit的只适合用于单元测试,TestNG无疑走的更远。
  可以用于集成测试,这个特性是我选择TestNG的最重要的原因。
  2. 测试的过程的三个典型步骤,注意和junit(4.0)相比,多了一个将测试信息添加到testng.xml文件或者build.xml
  测试信息尤其是测试数据不再写死在测试代码中,好处就是修改测试数据时不需要修改代码/编译了,从而有助于将测试人员引入单元测试/集成测试。
  3. 基本概念,相比junit的TestCase/TestSuite,TestNG有suite/test/test method三个级别,即将test/test method明确区分开了。
  junit中的TestCase将test/test method混合,比较容易让人概念不清晰,尤其是新手。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
4天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
28 10
|
1天前
|
Java 中间件 测试技术
深入理解自动化测试框架Selenium的设计与实现
【5月更文挑战第10天】 本文旨在深度剖析自动化测试工具Selenium的核心架构与实现机制,通过对其设计理念、组件结构以及在实际软件测试中的应用进行详细解读,使读者能够全面理解Selenium在现代Web应用测试中的重要性和有效性。文章首先介绍Selenium的发展背景及其解决的问题,然后详细探讨其架构设计,包括各种驱动和API的作用,最后结合实际案例分析Selenium如何提高测试效率和准确性。
|
2天前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(四十一)-java+ selenium自动化测试 - 处理iframe -上篇(详解教程)
【5月更文挑战第5天】本文介绍了HTML中的`iframe`标签,它用于在网页中嵌套其他网页。`iframe`常用于加载外部内容或网站的某个部分,以实现页面美观。文章还讲述了使用Selenium自动化测试时如何处理`iframe`,通过`switchTo().frame()`方法进入`iframe`,完成相应操作,然后使用`switchTo().defaultContent()`返回主窗口。此外,文章提供了一个包含`iframe`的HTML代码示例,并给出了一个简单的自动化测试代码实战,演示了如何在`iframe`中输入文本。
14 3
|
2天前
LabVIEW编程LabVIEW开发防护时间测试仪
LabVIEW编程LabVIEW开发防护时间测试仪
|
2天前
|
传感器
LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
|
2天前
|
传感器 编解码 算法
2021-07-20LabVIEW编程LabVIEW开发 控制Dantec 激光多普勒测试仪LDV例程与相关资料
2021-07-20LabVIEW编程LabVIEW开发 控制Dantec 激光多普勒测试仪LDV例程与相关资料
|
2天前
|
传感器 编解码
LabVIEW编程LabVIEW开发 控制RITEC RAM-5000 SNAP非线性高能超声测试系统例程与相关资料
LabVIEW编程LabVIEW开发 控制RITEC RAM-5000 SNAP非线性高能超声测试系统例程与相关资料
10 0
|
3天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
8 0
|
3天前
|
Web App开发 前端开发 JavaScript
自动化测试 selenium基础
自动化测试 selenium基础
11 2
|
5天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
【5月更文挑战第2天】在自动化测试过程中,经常会遇到处理日期控件的点击问题。宏哥之前分享过一种方法,但如果输入框是`readonly`属性,这种方法就无法奏效了。不过,通过修改元素属性,依然可以实现自动化填写日期。首先,定位到日期输入框并移除`readonly`属性,然后使用`sendKeys`方法输入日期。这样,即使输入框设置了`readonly`,也能成功处理日期控件。
24 1