我正在尝试为我的 Selenium 框架实现 Allure Reporting。它不使用任何测试框架,例如 TestNG
或 JUnit
。基本上我不需要 TestNG 或 Junit,因为我处理整个框架从 Excel 工作表获取数据。
目前我正在使用 Java Reflection 执行所有测试步骤。测试步骤基本上是简单的java方法。我已经在一个类中定义了它们 - 为每个测试用例一一执行它们。
示例:
[TC_0001, login, createUser, ModifyUser, deletUser]
[TC_0002, createUser]
通过逐一执行每个测试步骤来执行每个测试用例 - TC_0001。
测试用例 ID - TC_0001 第 1 步 - 创建用户 第 2 步 - 修改用户 第 3 步 - 删除用户
我已经在java类中定义了这些方法,并计划为Allure Report添加@Step注释。想知道这是否可能。
示例
@Step
public void login(String username, String password) {
//TestSetup.test.log(LogStatus.INFO, "This step shows the Login Function");
Log.info("Executing the Login method");
}
...
查看 Allure 文档和报告示例,我有兴趣在我的测试报告框架中实现它。
但是我做不到。有什么方法可以在没有任何 TestNG 或 Junit 适配器的情况下实现这一目标吗?请引用下面我的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.qameta</groupId>
<artifactId>opensource-parent</artifactId>
<version>1.3</version>
</parent>
<artifactId>allure-junit-example</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<allure.version>1.4.23.HOTFIX1</allure.version>
<aspectj.version>1.8.9</aspectj.version>
<compiler.version>1.7</compiler.version>
</properties>
<name>Allure JUnit Example</name>
<description>Allure JUnit and WebDriver Usage Example</description>
<dependencies>
<!-- Allure Junit Adaptor -->
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-junit-adaptor</artifactId>
<version>${allure.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8-beta4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<properties>
<property>
<name>listener</name>
<value>ru.yandex.qatools.allure.junit.AllureRunListener</value>
</property>
</properties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<!--Needed only to show reports locally. Run jetty:run and
open localhost:8080 to show the report-->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.10.v20150310</version>
<configuration>
<webAppSourceDirectory>${project.build.directory}/site/allure-maven-plugin</webAppSourceDirectory>
<stopKey>stop</stopKey>
<stopPort>1234</stopPort>
</configuration>
</plugin>
</plugins>
</build>
<!-- Allure Reporting -->
<reporting>
<excludeDefaults>true</excludeDefaults>
<plugins>
<plugin>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-maven-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</reporting>
</project>
我做了 Maven clean install site jetty:run 但无法获取报告。我确信我错过了很多东西,并且感谢任何有关这些的帮助。
最佳答案
简而言之,没有。
Allure Reporting 框架将与开发人员为其定义了适配器的任何测试框架配合使用,适配器是一个附加到特定测试框架并知道如何将测试信息提取到 XML 的小型库。
请访问-https://github.com/allure-framework/allure1/wiki ,了解有关如何使用任何可用框架设置测试的更多信息。
就您的 pom.xml 而言,您似乎使用了没有版本的 allure-junit-adaptor,即 ${allure.version}。您希望如何在没有版本的情况下解决依赖关系?
在你的示例中,有 @Step 注释,它肯定来自 allure,但是如果没有来自 TestNg 或 jUnit 的 @Test 或任何指定该方法是 TEST 的东西,Allure 将无法生成报告,因为它将无法断言哪些方法将测试信息提取到 XML。
一旦您实现了适当的适配器,您可以执行 - mvn clean test site,当测试运行完成时,只需转到项目中的站点目录,在其中打开以您实现的适配器命名的文件夹,在这里您将找到index.html,在浏览器中打开它,您将能够在不运行jetty的情况下看到包含结果的报告。
关于java - 设置 Selenium 的 Allure 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41183268/