如何在詹金斯中进行硒测试

时间:2019-04-01 13:48:55

标签: java selenium jenkins

我想出了如何使用right click on the project->export->as runnable jar对应用进行测试而不使其日蚀,并使用终端并键入java -jar $file.jar来进行测试,但是当我在jenkins上尝试相同的命令时,问题就来了,控制台输出如下:

    Starting OperaDriver 2.42.3135 (O58) on port 20597
    Only local connections are allowed.
    [1554121442.540][SEVERE]: bind() returned an error, errno=0: Cannot assign requested address (99)
        Exception in thread "main" java.lang.reflect.InvocationTargetException
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
        Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
        Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
        System info: host: 'localhost.localdomain', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-514.el7.x86_64', java.version: '11.0.2'
        Driver info: driver.version: OperaDriver
            at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:202)
            at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:188)
            at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
            at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
            at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
            at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
            at org.openqa.selenium.opera.OperaDriver.<init>(OperaDriver.java:173)
            at org.openqa.selenium.opera.OperaDriver.<init>(OperaDriver.java:160)
            at org.openqa.selenium.opera.OperaDriver.<init>(OperaDriver.java:149)
            at com.star.Simulation.Demo.testMethod(Demo.java:25)
            at com.star.Simulation.Demo.main(Demo.java:42)
            ... 5 more
        Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:20597/status] to be available after 20032 ms
            at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
            at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:197)
            ... 15 more
        Caused by: java.util.concurrent.TimeoutException
            at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:204)
            at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:148)
            at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
            ... 16 more
        [SSH] completed
        [SSH] exit-status: 1

        Build step 'Execute shell script on remote host using ssh' marked build as failure
        /*Sending e-mails to: some@mail
        ERROR: Could not connect to SMTP host: localhost, port: 25
        javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
          nested exception is:
            java.net.SocketTimeoutException: connect timed out
            at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
            at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
            at javax.mail.Service.connect(Service.java:295)
            at javax.mail.Service.connect(Service.java:176)
            at javax.mail.Service.connect(Service.java:125)
            at javax.mail.Transport.send0(Transport.java:194)
            at javax.mail.Transport.send(Transport.java:124)
            at hudson.tasks.MailSender.run(MailSender.java:131)
            at hudson.tasks.Mailer.perform(Mailer.java:173)
            at hudson.tasks.Mailer.perform(Mailer.java:136)
            at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
            at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
            at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
            at hudson.model.Build$BuildExecution.post2(Build.java:186)
            at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
            at hudson.model.Run.execute(Run.java:1843)
            at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
            at hudson.model.ResourceController.execute(ResourceController.java:97)
            at hudson.model.Executor.run(Executor.java:429)
        Caused by: java.net.SocketTimeoutException: connect timed out
            at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
            at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
            at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
            at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
            at java.base/java.net.Socket.connect(Socket.java:591)
            at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:286)
            at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
            at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
            ... 18 more
this error is normal because I didn't configure the smtp server*/ 
        Finished: FAILURE

您能指出我正确的方向吗?提前致谢 如果您需要我可以提供的其他信息,请问

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:打开终端并转到项目目录,在执行任何操作之前,在pom.xml中添加selenium,testng和java编译器插件(您可以在maven存储库网站上找到所有内容),下载Opera Webdriver并在您的系统中安装Opera,然后在您的课程中添加以下代码:

System.setProperty("webdriver.opera.driver", "path/to/your/operadriver");
    System.setProperty("webdriver.opera.logfile", "any/path/to/operadriver.log");
    OperaOptions options = new OperaOptions();
    options.addArguments("--no-sandbox");
    options.addArguments("disable-setuid-sandbox");
    options.addArguments("start-maximized");
    options.addArguments("disable-infobars");
    options.addArguments("--disable-extensions");
    options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
    options.addArguments("--headless");
    options.setExperimentalOption("useAutomationExtension", false);
    WebDriver driver = new OperaDriver(options);

然后在终端上使用此命令(显然必须安装maven和java):

mvn compile test

就这样