在TeamCity Continuous Integration服务器上自动执行Selenium测试

时间:2011-06-29 16:38:59

标签: selenium continuous-integration teamcity

我有一个Visual Studio解决方案,其中包含一个具有Selenium Tests的测试项目。

(我已经有版本控制checkin(Mercurial)触发的编译版本)

但我希望有一个单独的(每晚)构建配置来运行Selenium测试,最好是在MSTest下。

我认为我需要Selenium Server吗?如果是这样,在运行测试之前启动它的最佳方法是什么?我应该从 MSBuild脚本执行此操作还是使用Team City本身的构建步骤?我首先需要启动Cassini \ WebDev.WebServer,以便运行以下命令:

selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:49192/");

我安装了TeamCity 6.5.1的Build Server。 我安装了VS2010。

当然有人这样做了!绝望的帮助这些家伙。如果任何人可以提供任何示例,那将不胜感激。

4 个答案:

答案 0 :(得分:16)

我正准备在我们的TeamCity Server中设置Selenium测试,但仍然是Google搜索。 这些是我发现有趣的页面(除了你的StackOverflow问题):

Regression testing for any web application with TeamCity, Selenium, and JUnit

Selenium browser UnitTesting from TeamCity

因此,有一种解决方案可以将使用Selenium IDE记录的html文件转换为Java,以便在TeamCity中使用JUnit进行运行,另一种方法是使用C#创建测试脚本。

本主题"Running Selenium Tests through Teamcity, can it be done?"描述了将Build Agent作为服务运行时的问题...我希望我可以继续将代理作为服务运行。

答案 1 :(得分:7)

我们正在使用Selenium对我们公司的外部网站进行夜间测试。为此,我们使用Selenium RC和动态创建的测试套件。

我们的过程似乎比罗斯更复杂,就像这样:

  1. 在TeamCity服务器上安装Selenium RC
  2. 使用Firefox IDE plugin创建测试
  3. 创建一个网页,生成一个测试套件html文件,其中包含指向特定网络可访问文件夹中所有测试的链接(例如http://www.mysite.com/selenium/generateTests.aspx
  4. 在TeamCity中创建一个Powershell构建步骤,运行一个脚本,将套件和相应的测试下载到构建服务器
  5. 添加“XML报告处理”构建功能以扫描测试结果。这使得TeamCity能够告诉您测试结果。
  6. 在powershell脚本中:

    1. 使用针对下载的测试套件的输入以及作为基本URL的URL来执行Selenium RC运行时。 [* 1]
    2. 使用XSLT将输出转换为NUnit格式[* 2]
    3. [* 1] java -jar C:\Selenium\selenium-remote-control-1.0.3\selenium-server-1.0.3\selenium-server.jar -log C:\Selenium\www.mysite.com\selenium-log.log -userExtensions 'user-extensions.js' -firefoxProfileTemplate 'Selenium FireFox Profile' -htmlSuite *firefox http://www.mysite.com C:\Selenium\www.mysite.com\generated\GeneratedSuite.htm C:\Selenium\www.mysite.com\TestResults.html

      [* 2] nxslt3 $seleniumXmlTestReportPath nunit.xslt -o $nunitReportPath baseUrl=$testBaseUrl

答案 2 :(得分:6)

我们使用TeamCity来构建和测试基于C#的Web应用程序。我们一直运行Selenium Server,使用Java service launcher启动它。测试会连接到localhost,就像您在问题中显示的那样。

我们使用TeamCity的“NAnt Runner”来启动测试作业,并使用NAnt的<nunit2>任务在NUnit的控制下运行测试。因为我们这样做,NUnit会找到并运行任何使用[Test]属性注释的公共方法 - 这是一个非常简单,非常强大的工具。

此设置对我们非常有效。

答案 3 :(得分:1)

将其与NUnit或其他测试运行器集成。