我已经使用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;
}
答案 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中设置构建任务来运行测试。