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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章