selenium-webdriver
HTMLレポート
サーチ…
前書き
このトピックでは、セレンテストのHTMLレポートの作成について説明します。レポートにはさまざまな種類のプラグインがあり、広く使用されているのはAllure、ExtentReports、ReportNGです。
エクステントレポート
この例では、TestNG、Java、Mavenを使用してSeleniumでExtentReportsを実装する方法について説明します。
ExtentReportsには、コミュニティと商用の2つのバージョンがあります。わかりやすく実証的な目的で、コミュニティ版を使用します。
1.依存関係
エクステントレポート用の依存関係をMavenのpom.xmlファイルに追加します。
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.0.6</version>
</dependency>
2.プラグインの設定
pom.xmlに以下のようにmaven surefireプラグインを設定します
<build>
<defaultGoal>clean test</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>${jdk.level}</source>
<target>${jdk.level}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
3. ExtentReportsによるサンプルテスト
test.javaという名前のテストを作成します。
public class TestBase {
WebDriver driver;
ExtentReports extent;
ExtentTest logger;
ExtentHtmlReporter htmlReporter;
String htmlReportPath = "C:\\Screenshots/MyOwnReport.html"; //Path for the HTML report to be saved
@BeforeTest
public void setup(){
htmlReporter = new ExtentHtmlReporter(htmlReportPath);
extent = new ExtentReports();
extent.attachReporter(htmlReporter);
System.setProperty("webdriver.chrome.driver", "pathto/chromedriver.exe");
driver = new ChromeDriver();
}
@Test
public void test1(){
driver.get("http://www.google.com/");
logger.log(Status.INFO, "Opened site google.com");
assertEquals(driver.getTitle()), "Google");
logger.log(Status.PASS, "Google site loaded");
}
@AfterMethod
public void getResult(ITestResult result) throws Exception {
if (result.getStatus() == ITestResult.FAILURE)
{
logger.log(Status.FAIL, MarkupHelper.createLabel(result.getName() + " Test case FAILED due to below issues:", ExtentColor.RED));
logger.fail(result.getThrowable());
}
else if (result.getStatus() == ITestResult.SUCCESS)
{
logger.log(Status.PASS, MarkupHelper.createLabel(result.getName() + " Test Case PASSED", ExtentColor.GREEN));
}
else if (result.getStatus() == ITestResult.SKIP)
{
logger.log(Status.SKIP, MarkupHelper.createLabel(result.getName() + " Test Case SKIPPED", ExtentColor.BLUE));
}
}
@AfterTest
public void testend() throws Exception {
extent.flush();
}
@AfterClass
public void tearDown() throws Exception {
driver.close();
}
Allureレポート
この例では、TestNG、Java、およびMavenを使用したSureniumでのAllure Reportsの実装について説明します。
Mavenの設定
リポジトリ
jcenterリポジトリを設定する次のコードを追加してください
<repository>
<id>jcenter</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
依存
pom.xmlに以下の依存関係を追加する
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-testng-adaptor</artifactId>
<version>1.5.4</version>
</dependency>
シュアファイアプラグインの設定
<plugin>
<groupId> org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</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.testng.AllureTestListener</value>
</property>
</properties>
<suiteXmlFiles>testng.xml</suiteXmlFiles>
<testFailureIgnore>false</testFailureIgnore>
</configuration>
</plugin>
魅力レポートのサンプルテスト
test.javaという名前のサンプル・テストを作成する
public class test{
WebDriver driver;
WebDriverWait wait;
@BeforeMethod
public void setup() {
System.setProperty("webdriver.chrome.driver", "path to/chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.google.com/");
wait = new WebDriverWait(driver,50);
}
@Title("Title check")
@Description("Checking the title of the loaded page.")
@Test
public void searchTest(){
String title = driver.getTitle();
LogUtil.log("Title Fetched: "+title);
assertEquals(title,"Google");
LogUtil.log("Test Passed. Expected: Google | Actual: "+title);
System.out.println("Page Loaded");
}
@AfterMethod
public void teardown(){
driver.close();
}
}
上記のクラスでは、LogUtiilクラスを使用しました。これは単にテストのステップを記録するために行われます。以下は同じもののためのコードです
LogUtil.java
public final class LogUtil {
private LogUtil() {
}
@Step("{0}")
public static void log(final String message){
//intentionally empty
}
}
ここに
@Title( "")はAllure Reportであなたのテストのタイトルを追加します
@Description( "")はテストに説明を追加します
@Step( "")はテストの魅力レポートにステップを追加します
実行時に、xmlファイルが "target / allure-results /"フォルダに生成されます
ジェンキンスとの最終報告
Allure Reportプラグインがインストールされた状態でJenkinsで実行している場合、Jenkinsはジョブ内でレポートを自動的にレンダリングします。
ジェンキンスのない最終報告書
Jenkinsを持っていない人には、次のコマンドラインを使ってhtmlレポートを作成してください。 Allure CLIはJavaアプリケーションであるため、すべてのプラットフォームで使用できます。 Allure CLIを使用する前に、Java 1.7+を手動でインストールする必要があります。
Debian
Debianベースのリポジトリの場合、PPAを提供してインストールが簡単です:Debian用のAllure CLIをインストールしてください
$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update
$ sudo apt-get install allure-commandline
サポートされているディストリビューションは、信頼できると正確です。インストール後、魅力的なコマンドを利用できます。
マックOS
Homebrew経由でAllure CLIをインストールすることができます。
$ brew tap qatools/formulas
$ brew install allure-commandline
インストール後、魅力的なコマンドを利用できます。
Windowsおよびその他のUnix
- zipアーカイブとして最新版をhttps://github.com/allure-framework/allure-core/releases/latestからダウンロードしてください 。
- アーカイブをallure-commandlineディレクトリに解凍します。 binディレクトリに移動します。
- Windowsの場合はallure.bat、その他のUnixプラットフォームの場合はallureを使用してください。
コマンドライン/ターミナルで次の構文を入力するだけで、レポートはallure-reportフォルダに生成されます
$ allure generate directory-with-results/