12
  • Jenkins で Selenium 2 を使用できるようにしたいと考えています。

  • どちらも初心者ですので、無知な点はご容赦ください。

  • jenkins HEREの次のプラグインに気付き、インストールしました。

  • 次のような基本クラスがあります。

    public class BaseTestClass {
    
    protected Properties myprops;
    protected String baseurl;
    protected WebDriver driver;
    protected boolean acceptNextAlert = true;
    protected StringBuffer verificationErrors = new StringBuffer();
    
    public BaseTestClass()
    {
        try
        {
            myprops = TestUtil.readProps("src/MyProps.properties");
            baseurl = myprops.getProperty("baseurl");
    
            driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.fireFox());
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }       
    }
    
    @Before
    public void setUp() throws Exception {
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }
    
    @After
    public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
        }
    }
    
    protected boolean isElementPresent(By by) {
        try {
          driver.findElement(by);
          return true;
        } catch (NoSuchElementException e) {
          return false;
        }
      }
    
      protected String closeAlertAndGetItsText() {
        try {
          Alert alert = driver.switchTo().alert();
          if (acceptNextAlert) {
            alert.accept();
          } else {
            alert.dismiss();
          }
          return alert.getText();
        } finally {
          acceptNextAlert = true;
        }
      }
    

JenkinsのSelenium Pluginには次の構成があります。

ここに画像の説明を入力

..

ここに画像の説明を入力

プロジェクトをビルドして Jenkins で Junit selenium テストを実行しようとすると、ビルドは成功しますが、テスト自体は失敗します。(コマンド ラインから ant を使用して実行すると正常に動作します - を : に変更WebDriverします driver = new FirefoxDriver();) - Selenium RC の使用

これは、Jenkins のコンソール出力です。 ここに画像の説明を入力

編集: Jenkins でのビルド後に Junit .xml 出力ファイルをアーカイブできることに気付きました。クラスが見つからないという例外が発生していますか? ant私が言ったように、コマンドラインから使用するとうまくビルドされるので、これは奇妙です。

エラーは次のとおりです。

<error message="com.loggedin.CCBreadCrumb" type="java.lang.ClassNotFoundException">
java.lang.ClassNotFoundException: com.loggedin.CCBreadCrumb at
java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
java.net.URLClassLoader$1.run(URLClassLoader.java:355) at
java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:354) at
java.lang.ClassLoader.loadClass(ClassLoader.java:423) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at
java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native
Method) at java.lang.Class.forName(Class.java:186)
</error>

あなたが持っているかもしれない指示や助けを前もって感謝します!

4

2 に答える 2

5

私はいくつかの間違いを犯していたと思います。解決するためClass Not Found Exceptionに、次をantに追加しましたbuild.xml-(私は新しいAntであることを思い出してください)

<target name="compile" depends="init" description="compile the source " >       
    <javac srcdir="src/" destdir="bin" classpathref="SeleniumCC.classpath"/>
</target>       

これにより、私のJavaクラスがコンパイルされました。

次に、Selenium スタンドアロン サーバーを最新バージョン ( selenium-server-standalone-2.xx.x.jar) に更新する必要がありました。これは次の場所にあります。

jenkins_home_directory\plugins\selenium\WEB-INF\lib

最後に、selenium プラグインで間違った構成を使用しようとしていました (カスタム RC ノード構成を使用しようとしていましたが、必要なのはカスタム Web ドライバー ノード構成でした)。

ここに画像の説明を入力

ALSO NOTE : Red Hat で Selenium Server を実行する場合、Jenkins Xvfb プラグインを使用して XVFB をセットアップおよびインストールする必要がありました。

これが将来他の人に役立つことを願っています!幸運を!

于 2013-04-19T00:23:54.790 に答える