使用jenkins启动Selenium测试用例

时间:2013-04-04 18:16:44

标签: jenkins webdriver selenium-webdriver remotewebdriver

我已经使用selenium webdriver准备了一个测试案例,我使用MSTEST在本地运行,它工作正常,现在我想将我的测试用例移到JENKINS,当我从JENKINS运行时,它说Starting execution...及其超过15 mnts仍然是相同的状态所以我必须手动停止它。

这是我的控制台输出:

Started by user anonymous
Started by user anonymous
Building in workspace D:\Jenkins\jobs\Selenium_Script\workspace
[workspace] $ cmd /c call C:\Users\XXXXXXX\AppData\Local\Temp\hudson4765437871038045571.bat

D:\Jenkins\jobs\SelScript\workspace>call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest" /testcontainer:D:\Sel\EmployeeTest\test.emp.admin.dll 
Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.

Loading D:\Sel\EmployeeTest\test.emp.admin.dll...
Starting execution...

Build was aborted
Finished: ABORTED

我想在Jenkins上执行测试用例并检查执行结果

这是我正在使用的代码,以防万一。

这是我用来实例化我的驱动程序,我是否必须使用RemoteDriver

public static IWebDriver GetDriver()
        {
            string _url = new Uri(Common.Url).DnsSafeHost.ToString(); 

            switch (Common.BrowserSelected)
            {
                case "ff":
                    FirefoxProfile profile = new FirefoxProfile();
                    profile.SetPreference("network.http.phishy-userpass-length", 255);
                    profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", _url);
                    drv = new FirefoxDriver(profile);
                    break;
                case "ie":
                    var options = new InternetExplorerOptions();
                    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
                    DesiredCapabilities capabilities = new DesiredCapabilities();
                    capabilities.SetCapability(CapabilityType.AcceptSslCertificates, true);
                    drv = new InternetExplorerDriver(options);
                    break;
                case "chrome":
                    //_driver = new ChromeDriver();
                    break;
            }
            return drv;
        }

2 个答案:

答案 0 :(得分:2)

您可以在Jenkins的Build部分中运行Selenium脚本。

单击Add Build Step并选择Execute Shell,在那里您可以直接运行命令,就像在Linux环境中键入一样。

所有这一切都假设您正在运行Linux环境中的Jenkins。

@Do我必须使用RemoteDriver吗? 您是否已安装xvfb以无头模式运行测试? 如果没有,那么是的,您可以将测试重定向到在Windows / mac机器上远程运行。

<强>更新

如果您有Windows机器,则不需要xvfb。所以忘掉那个。

用于构建项目的Shell脚本(默认为sh,但这是可配置的)。该脚本将以工作空间作为当前目录运行。输入shell脚本的内容。如果您的shell脚本没有像#!/ bin / sh那样的标题行,那么将使用系统范围内配置的shell,但您也可以使用标题行以另一种语言编写脚本(例如#!/ bin / perl) )或控制shell使用的选项。 默认情况下,将使用“-ex”选项调用shell。因此,所有命令在执行之前都会被打印,如果任何命令以非零退出代码退出,则构建被视为失败。再次,添加#!/ bin / ...行来改变这种行为。

作为最佳做法,尽量不要在此处放置长shell脚本。相反,考虑在SCM中添加shell脚本并简单地从Jenkins调用该shell脚本(通过bash -ex myscript.sh或类似的东西),以便您可以跟踪shell脚本中的更改。

示例 -

您可以像这样运行ruby命令

ruby testscripts.rb

或像这样的shell脚本

./testscripts.sh

答案 1 :(得分:0)

詹金斯非常容易。就这样做:

  1.  Allow Jenkins to check-out your code into the Jenkins workspace.
  2.  Navigate to that workspace on your Windows computer and manually run
      the tests by executing the script that starts them.

通过这种方式,Jenkins暂时不在图片中,因此不再是您的问题的原因。然后,您可以专注于真正的实际问题。解决问题后,检查对源代码库的更改,然后再次运行Jenkins构建并尝试再次手动运行。如果这也有效,那么最后,您很清楚在Jenkins中设置构建任务来运行测试。