【测试报告】-TestNG自定义记录器

在本节中,我们将介绍一个例子,编写自定义记录器和TestNG的方法。要编写一个定制的记录器类,我们的扩展类应实现IReporter接口。让我们继续前进,并创建一个示例使用自定义的记录器。

创建测试案例类

创建一个Java类为 SampleTest.java 在 C:\ > TestNG_WORKSPACE

import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {
    @Test
    public void testMethodOne(){
        Assert.assertTrue(true);
    }

    @Test
    public void testMethodTwo(){
	Assert.assertTrue(false);
    }

    @Test(dependsOnMethods={"testMethodTwo"})
        public void testMethodThree(){
        Assert.assertTrue(true);
    }
}

上述测试类的包含三个测试方法,其中testMethodOne 和 testMethodThree将通过在执行时,而testMethodTwo由通过一个falseBoolean的值Assert.assertTrue方法,它是用于在测试中的真值条件失败。

创建自定义报告类

创建另一个新的类名为 CustomReporter.java 在 C:\ > TestNG_WORKSPACE

import java.util.List;
import java.util.Map;

import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.ISuiteResult;
import org.testng.ITestContext;
import org.testng.xml.XmlSuite;

public class CustomReporter implements IReporter{
    @Override
    public void generateReport(List xmlSuites, List suites,
        String outputDirectory) {
        //Iterating over each suite included in the test
        for (ISuite suite : suites) {
            //Following code gets the suite name
            String suiteName = suite.getName();
	    //Getting the results for the said suite
	    Map<string, isuiteresult=""> suiteResults = suite.getResults();
	    for (ISuiteResult sr : suiteResults.values()) {
	        ITestContext tc = sr.getTestContext();
	        System.out.println("Passed tests for suite ‘" + suiteName +
	             "‘ is:" + tc.getPassedTests().getAllResults().size());
	        System.out.println("Failed tests for suite ‘" + suiteName +
	             "‘ is:" +
	             tc.getFailedTests().getAllResults().size());
	        System.out.println("Skipped tests for suite ‘" + suiteName +
	             "‘ is:" +
	             tc.getSkippedTests().getAllResults().size());
	      }
        }
    }
}

前面的的类实现org.testng.IReporter 接口。它实现了IReporter接口定义的方法GenerateReport。这个方法有三个参数:

  • 第一个是xmlSuite,这是TestNG的测试XML正在执行中提到的列表套件
  • 第二个是套件,其中包含一套测试执行后信息,该对象包含了所有的信息包,类,测试方法和测试执行结果。
  • 第三的outputDirectory,报告将产生的输出文件夹路径,其中包含的信息。

创建 testng.xml

创建一个文件testng.xml 在 C:\ > TestNG_WORKSPACE 来执行测试用例

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Simple Reporter Suite">
  <listeners>
    <listener class-name="CustomReporter" />
  </listeners>

  <test name="Simple Reporter test">
    <classes>
      <class name="SampleTest" />
    </classes>
  </test>
</suite>

编译SampleTest,CustomReporter类使用javac

C:\TestNG_WORKSPACE>javac CustomReporter.java SampleTest.java

运行 testng.xml.

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

验证输出

===============================================
Simple Reporter Suite
Total tests run: 3, Failures: 1, Skips: 1
===============================================

Passed tests for suite ‘Simple Reporter Suite‘ is:1
Failed tests for suite ‘Simple Reporter Suite‘ is:1
Skipped tests for suite ‘Simple Reporter Suite‘ is:1

前面的例子显示了一个简单的自定义报告器,打印的数量在控制台上对每个套件包含在上述的测试执行失败,通过跳过测试。报告器主要是用于测试的执行,以生成最终的报告。扩展程序可以被用来生成XML,HTML,CHM,CSV或文本格式的文件,根据报告要求。

时间: 2024-10-06 23:19:25

【测试报告】-TestNG自定义记录器的相关文章

【测试报告】-TestNG自定义日志记录

我们此前读TestNG的记录和报告提供了不同的选项.现在,让我们了解如何开始使用它们.首先,我们将编写一个示例程序,我们将使用的ITestListener接口,以便进行记录. 创建测试案例类 创建一个Java类为 SampleTest.java 在 C:\ > TestNG_WORKSPACE import org.testng.Assert; import org.testng.annotations.Test; public class SampleTest { @Test public v

gauge自动化框架踩坑(四):在测试报告中自定义messages

在开始之前,我觉得很有必要介绍一下print和logger,因为平时调试用的最多的就是print和看日志,当然可以打断点调试,但是我不太习惯用这个 一. print gauge控制台输出到底支不支持print,其实自己可以写个demo,看来确实是支持的,不过控制台输出的有点乱,几乎和P紧挨着.其实gauge可以对print的结果标记个颜色区分下 二. logging 事实上,并没有任何的输出 gauge的日志做得不太好.它的输出日志是存放在logs/gauge.log下的,这里的日志非常简短,一

testng自定义模板第二版

解决日志弹出框不落地到点击出 通过bootstrap模态框实现,问题出现样式有点问题 效果: 点击日志弹出对话框,关闭对话框并且落地点击处 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"

TestNG详解(单元测试框架)

一.TestNG的优点 1.1 漂亮的HTML格式测试报告 1.2 支持并发测试 1.3 参数化测试更简单 1.4 支持输出日志 1.5 支持更多功能的注解 二.编写TestNG测试用例的步骤 2.1 使用 Eclipse生成TestNG的测试程序框架 2.2 在生成的程序框架中编写测试代码逻辑 2.3 根据测试代码逻辑,插入TestNG注解标签 2.4 配置Testng.xml文件,设定测试类.测试方法.测试分组的执行信息 2.5 执行TestNG的测试程序 三.如何安装TestNG? 启动E

测试工作——TestNG

阅读目录 TestNG介绍 在Eclipse 中安装TestNG插件 TestNG最简单的测试 TestNG的基本注解 TestNG中如何执行测试 TestNG中按顺序执行Case TestNG异常测试 TestNG组测试 TestNG参数化测试 TestNG忽略测试 TestNG 依赖测试 TestNG测试报告 TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit,   功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框

TestNG 搭建测试框架 自动化测试

框架层级及基本组件:    参考:https://www.cnblogs.com/jier888/p/8998724.html Java作为开发语言 Maven管理项目及Jar包 Testng作为测试框架,管理测试用例集,生成测试报告 Selenium为测试工具 Testng被选为测试框架的优点 灵活的测试配置 测试用例可以更容易地进行分组 可以使用TestNG实现测试并行 支持数据驱动测试 内置的报告 注释可以帮助我们来组织使测试更容易 8.1 介绍框架层级及基本组件 框架层级及基本组件: T

TestNG基础教程 - 基于IntelliJ IDEA 创建TestNG test

TestNG 是自动化测试框架,比Junit更强大,可用于单元测试,功能测试,端到端测试等,下面我们就介绍一下如何基于IntelliJ IDEA 创建TestNG test? 打开IntelliJ IDEA -> Create New Project -> Next ->  Next -> 编写项目名称 -> Finished 打开https://mvnrepository.com/artifact/org.testng/testng/7.0.0 下载testng-7.0.0

Http压测工具wrk使用指南

用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持LuaJIT和OpenSSL,不过不用担心,大多数类Unix系统都支持.安装wrk非常简单,只要从github上下载wrk源码,在项目路径下执行make命令即可. git clone https://github.com/wg/wrk make make之后,会在项目路径下生成可执行文件wrk,随后

自动化测试全聚合

UI自动化测试:1.基础API:http://www.cnblogs.com/zhangfei/p/3158223.html 2.数据驱动:http://www.cnblogs.com/zhangfei/p/5390091.htmlhttp://www.cnblogs.com/zhangfei/archive/2012/10/10/2718989.html 3.元素对象管理:http://www.cnblogs.com/zhangfei/p/3456159.html 4.UI自动化示例:http