0

我已经使用 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;
        }
4

2 回答 2

2

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

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

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

@我必须使用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
于 2013-04-04T19:24:50.953 回答
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 中设置构建任务来运行您的测试。

于 2013-04-05T02:08:55.433 回答