如何使用TestNG框架和Jenkins运行Selenium测试 [英] How to run Selenium tests using TestNG framework and Jenkins

查看:100
本文介绍了如何使用TestNG框架和Jenkins运行Selenium测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Jenkins运行在TestNG框架中编写的Selenium测试。

I want to run Selenium tests written in TestNG framework using Jenkins.

在jenkins job(Freestyle项目)中配置的命令:

The command configured in jenkins job (Freestyle project):

java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml

注意:对于 -cp参数,给定 testng jar,test classes和selenium jar的目录路径

当我运行作业(立即构建选项)时,它会对Selenium的创建会话活动产生影响并给出错误。

When I run the job (Build Now option), it is getting struck on create session activity of Selenium and giving the error.

注意:

同样的命令运行 命令行运行

The same command ran successfully when ran from the command line.

从控制台输出错误日志(jenkins )

Error Log from Console Output: (jenkins)

Started by user Naveen
Building in workspace C:\Program Files (x86)\Jenkins\workspace\TestNG Example
[TestNG Example] $ cmd /c call C:\Windows\TEMP\hudson2261889395366550414.bat

C:\Program Files (x86)\Jenkins\workspace\TestNG Example>java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml 
[TestNG] Running:
  J:\taf\workspace\TestNGExamples\testng1.xml

1481801204206   geckodriver INFO    Listening on 127.0.0.1:1387
Dec 15, 2016 4:56:44 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
1481801204827   mozprofile::profile INFO    Using profile path C:\Windows\TEMP\rust_mozprofile.KDz9DWYpWQAM
1481801204829   geckodriver::marionette INFO    Starting browser C:\Program Files\Mozilla Firefox\firefox.exe
1481801204831   geckodriver::marionette INFO    Connecting to Marionette on localhost:7795
1481801206090   Marionette  INFO    Listening on port 7795

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

JavaScript error: resource://app/modules/ContentCrashHandlers.jsm, line 75: TypeError: browser.permanentKey is not a non-null object

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

Dec 15, 2016 4:56:47 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

以下是测试类:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

    public class SeleniumTests {

        @Test
        public void test1(){
            WebDriver driver = new FirefoxDriver();
            driver.get("http://www.google.co.in");
            driver.quit();
        }

    }

以下是 testng1.xml

<?xml version="1.0" encoding="UTF-8"?>

<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="SeleniumTests"/>
    </classes>
  </test> <!-- Default test -->
</suite> <!-- Default suite -->

环境详情:


  1. Jenkins - 2.19.4(作为Windows服务)

  2. Java - 1.8

  3. TestNG - 6.8.5

  4. Selenium - 3.0.1

  5. Firefox - 51

  6. geckodriver - 0.11.1

  7. Os - Windows 7 - 64位

  1. Jenkins - 2.19.4 (as Windows Service)
  2. Java - 1.8
  3. TestNG - 6.8.5
  4. Selenium - 3.0.1
  5. Firefox - 51
  6. geckodriver - 0.11.1
  7. Os - Windows 7 - 64 bit


推荐答案

这不是TestNG或Selenium问题。当Jenkins被安装为Windows服务时,有时会出现此错误。在像Tomcat或GlassFish这样的servlet容器中安装Jenkins,它应该有所帮助。

This is not TestNG or Selenium issue. This error sometimes occure when Jenkins is insalled as Windows Service. Install Jenkins inside servlet container like Tomcat or GlassFish and it should help.

这篇关于如何使用TestNG框架和Jenkins运行Selenium测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆