TestNG日志和断言

TestNG 单元测试详解 TestNG 会为每次运行套件失败的测试,在结果输出目录(如果为用 -d outpu_dir 指定目录则结果输出目录为在当前工作目录下的生成的 test-outputs)下创建一个名为testng-failed.xm1 的文件。说明:test1的运行依赖 test2 的运行注意:这种依赖,如果被依赖者运行失败,那么依赖者的不被执行,报告中被标记为 SKIPeg:修改 test2方法如下,再次运行。xmltest.xm1是在对应目录下新建的,testng-1.0.dtd 也是下载后,手动放进去的。 阅读详情

TestNG报告

TestNG是一个框架,到目前为止,我们已经看到了TestNG的许多不同的强大功能。它几乎为您提供了完成框架所需的所有重要事项。

TestNG Reporter日志

TestNG还为我们提供了测试的记录功能。例如,在运行测试用例期间,用户希望在控制台中记录一些信息。信息可以是任何细节取决于目的。牢记我们正在使用Selenium进行测试,我们需要有助于用户理解测试步骤或测试用例执行期间的任何失败的信息。在TestNG Logs的帮助下,可以在Selenium测试用例执行期间启用日志记录。

在硒中有两种类型的日志记录。高级别日志记录和低级别日志记录。在低级别日志记录中,您尝试为您执行的每个步骤或在自动化脚本中执行的每个操作生成日志。在高级别日志记录中,您只需尝试捕获测试的主要事件。

每个人都有自己的伐木方式,我也有。我也是Log4j日志记录的忠实粉丝,这就是为什么我不将log4j日志记录与testng日志记录混合,而是在同一方面我使用它们。我执行与log4j的低水平日志记录和高级日志记录使用TestNG记者日志。

怎么做…

1)为登录应用程序编写测试用例,并在每一步执行Log4j日志记录。

2)在报告的主要事件上插入Reporter日志。

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

package automationFramework;

 

import java.util.concurrent.TimeUnit;

 

import org.apache.log4j.Logger;

 

import org.apache.log4j.xml.DOMConfigurator;

 

import org.openqa.selenium.By;

 

import org.openqa.selenium.WebDriver;

 

import org.openqa.selenium.firefox.FirefoxDriver;

 

import org.testng.Reporter;

 

import org.testng.annotations.Test;

 

import utility.Log;

 

public class ReporterLogs {

 

private static WebDriver driver;

 

private static Logger Log = Logger.getLogger(Log.class.getName());

 

    @Test

 

public static void test() {

 

DOMConfigurator.configure("log4j.xml");

 

        driver = new FirefoxDriver();

 

        Log.info("New driver instantiated");

 

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

 

        Log.info("Implicit wait applied on the driver for 10 seconds");

 

        driver.get("http://www.store.demoqa.com");

 

        Log.info("Web application launched");

 

        // Our first step is complete, so we produce a main event log here for our reports.

 

        Reporter.log("Application Lauched successfully | ");

 

        driver.findElement(By.xpath(".//*[@id='account']/a")).click();

 

        Log.info("Click action performed on My Account link");

 

        driver.findElement(By.id("log")).sendKeys("testuser_1");

 

        Log.info("Username entered in the Username text box");

 

        driver.findElement(By.id("pwd")).sendKeys("Test@123");

 

        Log.info("Password entered in the Password text box");

 

        driver.findElement(By.id("login")).click();

 

        Log.info("Click action performed on Submit button");

 

        // Here we are done with our Second main event

 

        Reporter.log("Sign In Successful | " );

 

        driver.findElement(By.id("account_logout"));

 

        Log.info("Click action performed on Log out link");

 

        driver.quit();

 

        Log.info("Browser closed");

 

        // This is the third main event

 

        Reporter.log("User is Logged out and Application is closed | ");

 

}

 

}

3)右键单击测试用例脚本运行测试,然后选择Run As > TestNG Test。

您的Log4j日志记录输出将如下所示:

TestNG的-记者-1

但您的Reporters日志将如下所示:

TestNG记者和断言

Log4j日志记录将帮助您报告测试期间的错误或步骤,另一方面,记者日志将帮助您与领导分享测试状态。领导只是对测试结果感兴趣,而不是测试步骤。

我还在测试期间使用记者的日志进行验证。例如

 

1

2

3

4

5

6

7

8

9

if(Text1.equals(Text2)){

 

Reporter.log("Verification Passed forText");

 

}else{

 

Reporter.log("Verification Failed for Text");

 

}

 

TestNG断言

TestNG还使我们能够在Asserts的帮助下在测试运行过程中做出决策。有了这个,我们可以在测试中放置各种检查点。在创建Selenium脚本时,断言是最常用和最常用的方法。 在selenium中,测试中会有很多情况,您只想检查元素的存在。您需要做的就是在其上放置一个断言语句来验证它的存在。

不同的断言语句

1)Assert.assertTrue()和Assert.assertFalse() 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

package automationFramework;

 

import java.util.concurrent.TimeUnit;

 

import org.openqa.selenium.By;

 

import org.openqa.selenium.WebDriver;

 

import org.openqa.selenium.WebElement;

 

import org.openqa.selenium.firefox.FirefoxDriver;

 

import org.testng.Assert;

 

import org.testng.annotations.Test;

 

public class Asserts {

 

private static WebDriver driver;

 

  @Test

 

  public void f() {

 

  driver = new FirefoxDriver();

 

      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

 

      driver.get("http://www.store.demoqa.com");

 

      // Here driver will try to find out My Account link on the application

 

      WebElement myAccount = driver.findElement(By.xpath(".//*[@id='account']/a"));

 

      //Test will only continue, if the below statement is true

 

      //This is to check whether the link is displayed or not

 

      Assert.assertTrue(myAccount.isDisplayed());

 

      //My Account will be clicked only if the above condition is true

 

      myAccount.click();

 

  }

 

}

注意:  如果实际输出为false,则断言true语句将使测试失败并停止测试的执行。Assert.assertFalse()与Assert.assertTrue()相反。这意味着,如果您希望测试仅在页面上不存在某些特定元素时继续。您将使用Assert false,因此如果页面上存在元素,它将无法通过测试。

2)Assert.assertEquals()

 

1

2

3

4

5

6

7

8

9

10

11

12

13

  @Test

 

  public void test() {

 

  String sValue = "Lakshay Sharma";

 

  System.out.println(" What is your full name");

 

  Assert.assertEquals("Lakshay Sharma", sValue);

 

  System.out.println(sValue);

 

  }

它的工作方式与assert true和assert fail相同。如果值不相等,它也将停止执行,如果值相等则继续执行。

用deepseek部署全自动的机器人--bytebot Bytebot是一款开源AI桌面代理,提供完整的虚拟桌面环境,支持跨应用任务处理、文件管理、文档处理等复杂工作流。其技术架构包含核心控制、LLM代理、UI等组件,支持Docker和Kubernetes部署。本文演示了基于CloudStudio的部署流程,包括环境配置、Docker部署及DeepSeek API集成,实现多模型调用功能。 阅读详情

相关推荐

从安装Eclipse 开始 开发第一个 CDS View

一篇超级简单快速的 创建CDS VIEW 入门步骤介绍文章。

IT小职员 4249

XML的换行问题

敲代码的时候,换行是个好习惯

1万+

MES系统领料申请、出库、确认到料各环节的处理

在WMS和MES系统协同的车间管理中,核心分工原则为:MES负责生产需求发起(领料申请)和结果确认(到料验收),WMS执行库存管理和物流作业。具体流程为:1)MES根据生产需求生成领料单推送至WMS;2)WMS完成拣货出库并调度AGV配送;3)车间在MES确认到料后解锁生产工序。系统边界严格限定:MES不参与库存/库位管理,WMS不干预生产决策。特殊场景(紧急补料、缺料异常等)通过标准化接口流程处理,确保生产与物流高效协同的同时保持账实一致。

做有价值的事,积累有价值的笔记! 585

TestNG测试报告和日志

前言 本文介绍TestNG自带的日志和报告生成功能。 正文 TestNG日志语句: TestNG自带的日志输出语句 Reporter.log(),一般会用此语句代替System.out.println()的输出。   TestNG测试报告: 测试报告的生成,通过创建XML文件来进行操作运行测试类或者测试套件。如果直接在测试类上运行,可能产生的测试报告会有问题(部分信息可能会缺失)。...

黑域的专栏 2646

【零基础】手把手教你使用Docker部署Springboot项目(详细版)

还不会使用Docker部署Springboot项目的小伙伴,不妨进来看看呗,希望文中内容对你有所帮助!

fengprogrammer的博客 2万+

PyTorch+C3D实战:用UCF101数据集训练你的第一个视频动作识别模型(附完整代码)

本文详细介绍了如何使用PyTorch和C3D模型在UCF101数据集上构建视频动作识别系统。从环境配置、数据预处理到模型训练与优化,提供了完整的代码实战指南,帮助开发者快速掌握视频行为识别技术。文章特别强调了3D卷积核设计、混合精度训练等关键技术要点,并分享了模型部署优化经验。

weixin_29233857的博客 218

《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)

TestNG为日志记录和报告提供的不同选项。现在,宏哥讲解分享如何开始使用它们。首先,我们将编写一个示例程序,在该程序中我们将使用 ITestListener方法进行日志记录。1.按照宏哥前边的方法,创建一个TestNG类,并命名为:TestLog。这里宏哥直接沿用上一篇文章中的测试类。如下图所示:2.然后进行脚本编辑,前面的测试类包含三个测试方法,其中OpenBrowser和LogOut将在执行时通过,而SignIn通过将false。

北京-宏哥的博客 837

Dual-stream multiple instance learning networks for tumor detection in Whole Slide Image——论文笔记

关于多示例学习的资料网上比较少,但是在医学图像方面还是有人在应用的。主要是因为一般比较大,几个G都是十分常见的,这么大图片是无法直接训练,一般都会进行切图,所以天然契合多示例学习bag和instance的概念。最近看了一篇论文刚好关于这方面的,所以做下笔记。 github地址:https://github.com/binli123/dsmil-wsi paper:https://arxiv.org/abs/2011.08939 背景知识 在多示例学习(MIL)中,一组训练样本被视为包含多个instance的

weixin_41693877的博客 4170

idea控制台打印日志不自动换行

idea控制台打印日志不自动换行 一、设置之前的效果: 二、第一步找到设置: 三、设置之后的效果:

qq_44140691的博客 3862

Python 静态导入与动态导入

python中模块的静态导入 与 动态导入(运行时指定模块),以及具体对应示例。

慢也好,步子小也好,往前走就好~ 717

lisp方格网法计算土方量_分享:两期土方工程量计算(方格网法)实例例题

最近遇到一个飞时达土方软件试用版客户,咨询怎么根据平整前的原始地形图和平整后的现状地形图来计算产生的土方工程量,也就是两期土方量,且需要用方格网法来计算,作为一个老道的工程设计人员,博主对这类的项目实例例题简直太熟悉了,用飞时达土方计算软件V13.0可以很方便的计算出来。 方格网法计算两期土方量流程 一、软件安装及注册 专业的飞时达土方计算软件FastTFT,请到飞时达软件官方网站去下载,注册完...

weixin_35131425的博客 1700

使用ReportNg替换TestNg默认的报告生成工具

在做自动化测试的时候发现,TestNg原生的报告虽然内容挺全,但是展现效果却不太理想。上网发现ReportNg工具用来替换TestNg报告再好不过了。以下是我在Ant build.xml文件中的配置。   useDefaultListeners = "false" 用来禁止TestNg产生报告,但是我们还需要他的错误报告testng-fails.xml文件,为了方便我们只关注未通过的测

465

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

GW1NSR-4C ARM部分共有2个串口外设,都挂载在APB1总线上,最高支持波特率921.6Kbit/s,无奇偶校验位,8位数据位,1位停止位,支持高速测试模式 HSTM(High Speed Test Mode),即每个时钟周期输出1位数据,可以在短时间内传输大量数据。官方手册上没有描述发送和接收缓存FIFO的深度,所以不确定是否支持缓存。

whik1194的博客 1685

Java自动化测试框架-10 - TestNG之测试结果篇

1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释)。 您的测试方法通常由可能引发异常的调用或各种断言(使用Java“ assert”关键字)组成。“断言”失败将触发AssertionErrorException,这反过来会将方法标记为失败(如果未看到断言错误,请...

HuaZi_Myth的博客 430

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

testng执行参数_TestNG之测试结果

一.成功、失败和校验 如果测试方法执行完成没有发生任何异常,或者发生了预期的异常,则认为测试成功(关于@Test注解上的exceptedExceptions属性,可以参考文档)。 测试方法可以有抛出异常或用各种断言(assert关键字)组成,“assert”失败将处罚一个AssertErrorException,该异常会将测试方法标记为失败。 测试方法校验例子:@Tes...

weixin_32943807的博客 1022

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Selenium——TestNG基础使用

TestNG基础使用 TestNG介绍 TestNG的常用注解 testng.xml 数据提供者 断言 编写测试用例的步骤

m0_51508220的博客 2186

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【译】TestNG官方文档中文版(09)—— 测试结果

6 - 测试结果6.1 - 成功、失败和断言<br />如果一个测试没有抛出任何异常就完成运行或者说抛出了期望的异常(参见@Test注解的expectedExceptions属性文档),就说,这个测试时成功的。<br />测试方法的组成常常包括抛出多个异常,或者包含各种各样的断言(使用Java "assert" 关键字)。一个 "assert" 失败会触发一个 AssertionErrorException,结果就是测试方法被标记为失败(记住,如果你看不到断言错误,要在加上 -ea 这个JVM参数)。<br

zhu_ai_xin_520的专栏 2572

TestNG官方文档中文版(06)—— 测试结果

6 - 测试结果 6.1 - 成功、失败和断言 如果一个测试没有抛出任何异常就完成运行或者说抛出了期望的异常(参见@Test注解的expectedExceptions属性文档),就说,这个测试时成功的。 测试方法的组成常常包括抛出多个异常,或者包含各种各样的断言(使用Java "assert" 关键字)。一个 "assert" 失败会触发一个 AssertionErrorExce

生命不息 奋斗不止 1345

java testng 优化_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

1.-测试结果1.1-成功,失败和断言测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释)。您的测试方法通常由可能引发异常的调用或各种断言(使用Java“ assert”关键字)组成。“断言”失败将触发AssertionErrorException,这反过来会将方法标记为失败(如果未看到断言错误,请记住在JVM...

weixin_36158990的博客 190

TestNG·六 测试结果

一、成功、失败和断言 如果一个测试没有抛出任何异常就完成运行或者说抛出了期望的异常(参见@Test注解的expectedExceptions属性文档),就说,这个测试时成功的。 测试方法的组成常常包括抛出多个异常,或者包含各种各样的断言(使用Java "assert" 关键字)。一个 "assert" 失败会触发一个 AssertionErrorException,结果就是测试方法

心系旭阳 1091

Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

例如,如果要生成测试运行的PDF报告,则无需实时通知测试运行,因此您应该使用IReporter。”)的文本报告程序(如下所述),则ITestListener是您的最好的选择。在此示例中,我选择扩展TestListenerAdapter,该方法使用空方法实现ITestListener,因此我不必从我不感兴趣的接口中覆盖其他方法。当所有套件都已运行时,TestNG将调用此方法,您可以检查其参数以访问刚刚完成的运行中的所有信息。请注意,当您使用-listener时,TestNG将自动确定您要使用的侦听器的类型。

北京-宏哥的博客 1403

selenium的TestNG框架注解,测试集合,用例分组,依赖测试,特定顺序执行,跳过某个case执行,自定义日志,断言_06

TestNG框架注解,测试集合,用例分组,依赖测试,特定顺序执行,跳过某个case执行,自定义日志,断言 1.注解:新建testNG框架的Annotation类,代码如下 public classAnnotation {   @Test   public voidtestCase1() {     System.out.println("测试用例1被执行");   }

lvbu_abcd的博客 3060

java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇

1.-测试结果1.1-成功,失败和断言测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释)。您的测试方法通常由可能引发异常的调用或各种断言(使用Java“ assert”关键字)组成。“断言”失败将触发AssertionErrorException,这反过来会将方法标记为失败(如果未看到断言错误,请记住在JVM...

weixin_42500279的博客 320

java自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

1.-测试结果1.1-成功,失败和断言测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释)。您的测试方法通常由可能引发异常的调用或各种断言(使用Java“ assert”关键字)组成。“断言”失败将触发AssertionErrorException,这反过来会将方法标记为失败(如果未看到断言错误,请记住在JVM...

weixin_39607836的博客 462

TestNG 六 测试结果

一、成功、失败和断言 如果一个测试没有抛出任何异常就完成运行或者说抛出了期望的异常(参见@Test注解的expectedExceptions属性文档),就说,这个测试时成功的。 测试方法的组成常常包括抛出多个异常,或者包含各种各样的断言(使用Java "assert" 关键字)。一个"assert"失败会触发一个AssertionErrorException,结果就是测试方法被标记为失败(记住

Manchester117的专栏 1万+

13. 【Java基础】TestNG单元测试框架

TestNG测试框架

weixin_48051271的博客 663
上一篇: TestNG参数和数据源
下一篇: TestNG优先排序和排序
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值