在 TeamCity 持续集成服务器上自动化 Selenium 测试

发布于 2024-11-17 21:21:09 字数 568 浏览 2 评论 0原文

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

(我已经有一个由版本控制签入(Mercurial)触发的编译构建)

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

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

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

我有一个安装了 TeamCity 6.5.1 的构建服务器。 我安装了VS2010。

肯定有人这么做过!在这里迫切需要一些帮助。如果有人能提供任何例子,我们将不胜感激。

I have a Visual Studio solution which includes a Test project having Selenium Tests.

(I already have a compilation build triggered by version control checkin (Mercurial))

But I want to have a separate (nightly) Build Configuration which runs the Selenium tests, ideally under MSTest.

I assume I need Selenium Server for this? If so, what's the best way to fire it up before running the tests? Should I do this from the MSBuild script or use a Build Step from Team City itself? Do I need to fire up Cassini\WebDev.WebServer first of all so the following can run:

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

?

I have a Build Server with TeamCity 6.5.1 installed.
I have a VS2010 installed.

Surely someone has done this! Desperate for some help here guys. If any one could offer any examples, that would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

零時差 2024-11-24 21:21:09

我正要在我们的 TeamCity 服务器中设置 Selenium 测试,并且仍在谷歌搜索。
这些是我发现有趣的页面(除了您的 StackOverflow 问题):

使用 TeamCity、Selenium 和 JUnit 对任何 Web 应用程序进行回归测试

TeamCity 的 Selenium 浏览器 UnitTesting

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

还有这个主题,“通过 Teamcity 运行 Selenium 测试,可以完成吗?” 描述了将构建代理作为服务运行时出现的问题...我希望我可以继续将代理作为服务运行。

I am just about to set up Selenium tests in our TeamCity Server and am still Googling.
These are the pages that I found interesting (apart from your StackOverflow question):

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

Selenium browser UnitTesting from TeamCity

So there is one solution that converts the html files recorded with Selenium IDE to Java to be ran with JUnit in TeamCity and the other approach is creating your test scripts in C#.

And this topic, "Running Selenium Tests through Teamcity, can it be done?" describes a problem while running the Build Agent as a service... I hope that I can continue running the agent as a service.

绿萝 2024-11-24 21:21:09

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

我们的流程看起来比 Ross 更复杂,如下所示:

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

在 powershell 脚本中:

  1. 使用以下载的测试套件为目标的输入以及哪个 url 将作为基本 url 来执行 Selenium RC 运行时。 [*1]
  2. 使用 XSLT 将输出转换为 NUnit 格式 [*2]

[*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 配置文件' -htmlSuite *firefox http://www.mysite.com C:\Selenium\www.mysite.com\ generated\GenerateSuite.htm C:\Selenium\www.mysite.com\TestResults.html

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

We are using Selenium for nightly tests of our companys external web site. For this we use Selenium RC and dynamically created test suites.

Our process, which seems more complicated than Ross' is like this:

  1. Install Selenium RC on the TeamCity server
  2. Use the Firefox IDE plugin to create tests
  3. Create a web page that generates a test suite html file with links to all tests in a certain web accessible folder (e.g. http://www.mysite.com/selenium/generateTests.aspx)
  4. Create a Powershell build step in TeamCity, running a script that downloads the suite and corresponding tests to the build server
  5. Add a "XML report processing" build feature to scan for test results. This makes TeamCity able to tell you about the test results.

In the powershell script:

  1. Execute the Selenium RC runtime with inputs that targets the downloaded test suite and which url that is to be the base url. [*1]
  2. Use XSLT to transform the output to NUnit format [*2]

[*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

土豪 2024-11-24 21:21:09

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

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

这个设置对我们来说非常有效。

We use TeamCity to build and test our C#-based web application. We run the Selenium Server all the time, using the Java service launcher to start it. The tests connect to localhost, just like you show in your question.

We use TeamCity's "NAnt Runner" to start the test jobs, and use NAnt's <nunit2> task to run the tests under control of NUnit. Because we do that, NUnit finds and runs any public method annotated with a [Test] attribute - it's a very simple, very powerful tool.

This setup works very well for us.

撩起发的微风 2024-11-24 21:21:09

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

Integrate it with NUnit or other test runner.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文