我正在进行跨浏览器测试,在4种浏览器Chrome、Firefox、IE和Safari上运行多个类中的每个测试方法。
testng HTML报告
即使testng HTML报告会有浏览器名称,但与测试方法相对应也很好。
我找到了这个链接,但我只需要浏览器列旁边的方法列到自定义报告中的链接
您可以通过创建自定义的TestHTMLReport
来实现这一点。传递CustomReport.java
类中的任何数据,并生成自己的报告,如下所示。我在这里也解释过了
使用customReport
您必须实现IReporter
,扩展TestListenerAdapter
并重写generateReport
方法,如果您想实现自定义TestHTMLReporter
。对于其他记者来说,你可能不得不做一些不同的事情,但概念将保持不变。您可以实现如下定制的“TestHTMLReporter”。
创建一个CustomReport.java
文件在您的项目和复制粘贴整个内容的TestHTMLReporter.java
,更改文件的名称在getOutputFile
方法,它会像下面这样
public class CustomReport extends TestListenerAdapter implements IReporter {
@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,
String outputDirectory) {
}
...
//paste the content of TestHTMLReporter.java here
...
...
确保从TestHTMLReporter导入的所有内容都已准备就绪。java
现在,在这个文件中根据您的要求进行更改。例如:如果你想添加每个测试的结束时间,那么在generateTable
方法的正确位置添加下面的代码片段
// Test class
String testClass = tr.getTestClass().getName();
long testMillis = tr.getEndMillis();
String testMillisString = Long.toString(testMillis);
if (testClass != null) {
pw.append("<br>").append("Test class Name: ").append(testClass);
// this line to add end time in ms
pw.append("<br>").append("End Time(ms): ").append(testMillisString);
// Test name
String testName = tr.getTestName();
if (testName != null) {
pw.append(" (").append(testName).append(")");
}
然后你会像下面这样
现在,您将得到两个报告,一个是默认报告,另一个是文件名报告。现在剩下的唯一一件事就是关闭默认的报告侦听器,这样您只会得到一个报告。为此,你可以遵循这一点,也可以寻找解决方案。希望这有帮助
你可以在这里这样做。但最好使用报告功能,例如,您可以通过任何测试名称和描述来报告see docs。
我有一个简单的测试套件(对这个例子来说非常简单)。我在构造函数上使用@Factory表示法和一个@DataProvider,它返回一个城市对象[][](多达100个),我运行我的测试。在这个例子中有3个@Test方法。如果我不将测试名称附加到城市名称,我将有一个超文本语言标记报告,它只会一遍又一遍地列出3个测试方法,无法区分它们。 我尝试过这样的例子:这里。 我的测试课做得很好。我遇到的问题是,当
我正在从事一个需要以编程方式调用TestNG(使用数据提供程序)的项目。情况很好,只是在报告中,我们得到了@测试方法的名称,这是一种处理许多情况的通用方法。我们希望在报告中得到一个有意义的名字。 我一直在研究这个问题,发现了三种方法,但不幸的是,所有方法都失败了。 1) 实施ITest 我在这里和这里都发现了这个 我一输入@Test方法就设置了我想要的名称(对于我尝试的所有3种方式,这就是我设置名
我用Selenium创建了测试框架,并为测试报告设置了ExtentReports。对字段使用页面对象模型和@FindBy注释为每个页面创建自己的WebElements存储。现在我想创建自定义注释@Name 以及它的实现,以便能够在我的报告后面使用每个WebElement的描述。我有我自己的实现点击()方法 我能够得到所有元素的描述注释类与反射像这里 是否可以在java中读取注释的值? 但无法获取我
我在java testng测试中使用allure testng(2.12.1)适配器。我有使用@DataProvider的测试。我的测试实现了ITest,以在运行时更改测试方法实例名称。当我运行测试时,我看到了不同的测试方法名称,但在allure报告中,它为每个测试运行显示了相同的测试方法。如何配置诱惑报告以显示类似IDE的内容? 预期:测试一测试二测试三 实际:myTest myTest myT
在范围报告中,我想显示测试的名称而不是方法名称。所以我找到了一个解决方案,为@Test注释添加了一个test name属性 问题1:在报告中,我看到getTestName方法返回null。 问题2:我无法在报告的“测试”列下创建测试名称为的测试。这是一条可以做到这一点的线: 测试=范围。createTest(Thread.currentThread())。getStackTrace()1。getM
在我的pom.xml我创建了不同的配置文件烟雾和回归测试使用cucumber框架。使用下面的maven命令运行测试。以下是烟雾测试的例子: 测试运行正常,但即使我提供了,它也不会生成报告。我为cucumber使用了一个常见的运行类,所以我不能将文件名作为注释。 以下是pom.xml配置: