2014-02-13 79 views
0

目前我有一個包含4個Selenium/Maven測試的GitHub回購。我能夠通過MVN測試,以我的本地計算機上單獨運行各個測試如何讓詹金斯運行我的Maven/Selenium GitHub測試

我有詹金斯也是我的本地機器上運行,並且創建了一個Maven項目來拉我的GitHub庫,在的一個選擇的pom.xml測試(P_ProfileChangeMavenTest),然後執行測試作爲我的maven目標。

當詹金斯運行我的測試時,它開始通過我的maven項目,但不拉起Firefox瀏覽器與我的測試進行交互。

的pom.xml

<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> 
    <groupId>com.test.profilechange</groupId> 
    <artifactId>Profile</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>Profile</name> 
    <description>PRofile</description> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.39.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.maven.surefire</groupId> 
      <artifactId>surefire</artifactId> 
      <version>2.16</version> 
      <type>pom</type> 
     </dependency> 
    </dependencies> 
</project> 

我是相當新的自動化,我試圖確認一切正常,我的本地機器上的第一個發送這些測試與硒網格中的服務器上運行了。

所有的幫助將不勝感激,因爲我需要儘快得到這個工作。

感謝先進!

+0

根據你的錯誤,它說「元素不可見異常」。讓我們來談談谷歌。 – sircapsalot

回答

0

我發現我們的作品是使用testNg來運行測試。我們創建了一個我們要運行不同的測試XML文件,我們使用

MVN測試-D TestNG的= testname.xml

TestNG的是集成式的測試,一個偉大的框架,而殲單元測試框架更爲單元測試而設計。

xml文件的示例將是這樣的。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name=" Report - Create New Report and Add Fields By Double Click and Filter by Right Clicking" parallel="none" verbose="1"> 
    <test verbose="1" name="is site available" preserve-order="true"> 
    <classes> 
     <class name="com.somecompany.qa.seleniumautomation.PucDD"> 
     <methods> 
      <include name="siteAvailable" /> 
     </methods> 
     </class> 
    </classes> 
    </test> 
    <test verbose="1" name="Login as 'admin' 'password'" preserve-order="true"> 
    <classes> 
     <class name="com.somecompany.qa.seleniumautomation.PucDD"> 
     <methods> 
      <parameter name="login.user" value="admin" /> 
      <parameter name="login.password" value="password" /> 
      <include name="login" /> 
     </methods> 
     </class> 
    </classes> 
    </test> 
    <test verbose="1" name="Create a new Report based on the provided data source" preserve-order="true"> 
    <classes> 
     <class name="com.somecompany.qa.seleniumautomation.Reports"> 
     <methods> 
      <parameter name="data.source.name" value="Orders" />  
      <include name="createNewReport"/> 
     </methods> 
     </class> 
    </classes> 
    </test> 
    <test verbose="1" name="Add the passed fields to the report by double clicking and add the passed filters by right clicking the field." preserve-order="true"> 
    <classes> 
     <class name="com.company.qa.seleniumautomation.Reports"> 
     <methods> 
      <parameter name="login.user" value="admin" /> 
      <parameter name="login.password" value="password" /> 
      <parameter name="fields" value="Customer Number,Customer Name,Order Date,Status,Shipped Date" /> 
      <parameter name="filterCriteria" value="Customer Number:lte=300,Customer Number:gte=150,Product Lines:contains=a" /> 
      <include name="addFilters"/> 
     </methods> 
     </class> 
    </classes> 
    </test> 
    <test verbose="1" name="Close the report" preserve-order="true"> 
    <classes> 
     <class name="com.company.qa.seleniumautomation.Reports"> 
     <methods> 
      <include name="close"/> 
     </methods> 
     </class> 
    </classes> 
    </test> 
</suite> 
+0

這需要我完全改變我的項目(我可能會考慮但不願意這樣做)。我認爲我的主要問題是Jenkins未啓動Web瀏覽器來運行其測試 – user2683183

+0

@ user2683183您是使用Selenium RC還是Web Driver? –

0

jenkins工作正在運行在它自己的客戶端上。它沒有可見的用戶界面,這就是爲什麼你測試失敗。

你應該改變你的測試代碼使用遠程的webdriver或硒電網

//need to start a selenium standalone server 
DesiredCapabilities capability = DesiredCapabilities.firefox(); 
WebDriver driver = new RemoteWebDriver(new URL("http://SERVER_ADDRESS:4444/wd/hub"), capability); 

Selenium Grid Wiki更多detaisl

0

如果你開始詹金斯使用命令行,如果你運行測試,然後就可以看到在瀏覽器上運行測試。

命令使用命令行啓動詹金斯: Java的罐子jenkins.war

希望這有助於。

0

嘗試從命令提示符以管理員身份運行它,爲我工作。

0

如果您使用的是Windows:

1)。去命令提示符: 輸入 「cmd」

2)。按CTL + Shift + Enter鍵(開作爲管理員)

3).Type「Services.msc」

4)。它將打開Windows服務,選擇「Jenkins」服務,右鍵點擊&打開的屬性,並轉到「登錄」選項卡並選擇「本地系統帳戶」並選擇「允許服務與桌面交互」。

enter image description here

5)。按OK。

6)。將打開一個對話框。單擊窗口中的「查看消息」「在此計算機上運行的程序試圖顯示消息」。

enter image description here

現在你可以看到在同一臺機器上運行的測試...享受!