Selenium測試結果視覺化工具--Sahagin測試框架使用入門(二)
本片文章主要解釋如何使用Sahagin。
1、sahagin.jar依賴和JVM引數設定
(1)Maven
在pom.xml檔案中新增依賴和測試執行JVM引數
<properties> <sahagin.version>0.9.1</sahagin.version> </properties> <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-exec --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-exec</artifactId> <version>1.3</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>com.opera</groupId> <artifactId>operadriver</artifactId> </dependency> <dependency> <groupId>org.sahagin</groupId> <artifactId>sahagin</artifactId> <version>${sahagin.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>com.opera</groupId> <artifactId>operadriver</artifactId> <version>0.16</version> <exclusions> <exclusion> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-remote-driver</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.4</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18 </version> <configuration> <forkCount>3</forkCount> <reuseForks>true</reuseForks> <argLine> -javaagent:${settings.localRepository}/org/sahagin/sahagin/${sahagin.version}/sahagin-${sahagin.version}.jar </argLine> <useSystemClassLoader>true</useSystemClassLoader> </configuration> </plugin> </plugins> </build>
(3)直接使用jar包
從https://github.com/SahaginOrg/sahagin-java/releases 下載 sahagin-0.9.2.zip,將所有的jar檔案新增到java class path中。當你執行測試用例的適用,必須新增引數-javaagent:<path to sahagin.jar>。
import org.sahagin.runlib.external.PageDoc; import org.sahagin.runlib.external.TestDoc; @PageDoc("Contact page") public class ContactPage { @TestDoc("set name '{name}'") public void setName(String name) { .... } @TestDoc("name") public String getName() { .... } @TestDoc("set mail address '{0}'") public void setMail(String email) { .... } .... }
2.添加註解
新增@PageDoc註解在你宣告的page object 類上,在你的page object方法上或者其他方法上新增@TestDoc註解
沒有添加註解的方法或者類也可以呈現在Sahagin報告中,因此你不需要再你所有的類和方法上添加註解
使用{parameter name} 或者{parameter index start from 0}來在@TestDoc中包含方法引數資訊
getter方法的@TestDoc 描述 ,列如“getName”方法應該是名詞列如“name”,而不是列如“get name”的動詞;因此,assertEquals(contactPage.getName(), 'User A')會變為"check that name equals to 'user A'"這種描述
3.螢幕捕獲
在捕獲螢幕是,需要呼叫 WebDriverAdapter.setAdapter方法,並且在每一個標註@Before註解的測試方法中使用WebDriver例項
import org.sahagin.runlib.external.adapter.webdriver.WebDriverAdapter;
public class SampleTest {
@Before
public void setUp() {
wd = new FirefoxDriver();
WebDriverAdapter.setAdapter(wd);
...
}
}
如果使用Appium,則使用AppiumAdapter。你也可以使用SelendroidAdapter和IOSDriverAdapter、
import org.sahagin.runlib.external.adapter.appium.AppiumAdapter;
public class SampleTest {
@Before
public void setUp() {
wd = new AndroidDriver(...);
AppiumAdapter.setAdapter(wd);
...
}
}
如果使用FluentLenium,則使用FluentLeniumAdapeter。
import org.sahagin.runlib.external.adapter.fluentlenium.FluentLeniumAdapter;
public class SampleTest extends FluentTest {
@Before
public void setUp() {
FluentLeniumAdapter.setAdapter(this);
...
}
}
4.建立配置檔案sahagin.yml
穿件sahagin.yml檔案在java proejct的根目錄。改變testDir 的值為你的測試檔案所放的目錄
# Sahagin configuration file written by YAML style.
java:
# Root directory of test Java files
# (absolute path or relative path from this YAML file).
# All test methods and methods annotated by @TestDoc
# must be located under this directory.
testDir: src/test/java
5.執行測試用例,生成報告
執行JUnit測試用例
如果使用Maven,執行“mvn test”,注意Maven執行時只會測試預設的"Test*.java","*Test.java","*TestCase.java"檔案
如果使用Gradle,執行"gradle test"
如果使用jar檔案,使用javaagent引數進行執行
測試報告,在執行測試後,HTML報告 sahagin-report/index.html會被生成在sahagin.yml所在的目錄。
6.設定enkins外掛
Jekins Sahagin 外掛會在Jenkins上顯示由Sahagin生成的HTML報告。首先,在點選配置管理->外掛管理->可使用的,找到Sahagin plugin 點選安裝它。重啟Jenkins。
然後去專案配置頁面,選擇post-build Actions 中的PublishSahagin HTML report,然後新增sahagin.yml
執行利用之前建立的pom.xml或者build.gradle檔案,進行Junit測試,關聯Sahagin報告列表會被新增到Jenkins構建結果頁面上。
注意 僅僅使用Jenkins外掛是不會生成報告的,你需要完成所有的步驟從1.sahagin.jar依賴和JVM引數配置。也要注意sahagin.jar的版數要和Jenkins Sahagin外掛相同。
如果你使用Publish Junit test result report 作為 Post-build Action,新增Additional test report feature “Add Sahagin test report link to each test result”
在執行測試後,Sahagin 報告連結會被新增到Junit each test result page