有没有人找到并行运行 C# Selenium RC 测试的方法?

有没有人找到并行运行 C# Selenium RC 测试的方法?

Has anyone found a way to run C# Selenium RC tests in parallel?

有没有人找到一种方法来运行 Selenium RC / Selenium Grid 测试,用 C# 并行编写?

我目前有一个使用 Selenium RC 的 C# 驱动程序编写的相当大的测试套件。运行整个测试套件需要一个多小时才能完成。我通常不必运行整个套件,所以到目前为止这不是一个问题,但我希望能够更经常地做一些事情(即,作为自动构建的一部分)

我最近花了一些时间研究 Selenium Grid 项目,其目的本质上是允许这些测试并行运行。不幸的是,我正在使用的 TestDriven.net 插件似乎是连续运行测试的(即一个接一个)。我假设 NUnit 会以类似的方式执行测试,尽管我还没有实际测试过。

我注意到 NUnit 2.5 测试版开始讨论与 pNUnit 并行运行测试,但我对这个项目还不够熟悉,无法确定这是否可行。

我正在考虑的另一个选择是将我的测试套件分成不同的库,这可以让我同时从每个库运行测试,但我想尽可能避免这种情况,因为我不相信这是一个正当的理由用于拆分测试套件。


我正在做这件事,并且发现 Gallio 最新可以并行驱动 mbUnit 测试。您可以将它们驱动到单个 Selenium Grid 集线器,该集线器可以有多个远程控制服务器进行侦听。

我正在使用来自 Gallio 的最新夜间数据来获取 ParallelizableAttribute 和 DegreeOfParallelismAttribute。

我注意到的一些事情是我不能依赖 TestSetTestTeardown 来隔离并行测试。您需要使测试看起来像这样:

1
2
3
4
5
6
7
8
9
[Test] public void Foo(){
  var s = new DefaultSelenium("http://grid", 4444,"*firefox",
                             "http://server-under-test");
  s.Start();
  s.Open("mypage.aspx");
  // Continue
  s.Stop();

}

使用 [SetUp] 属性启动 Selenium 会话导致测试无法从 s.Start() 获取远程会话。


大约三年前,我编写了 PNUnit 作为 NUnit 的扩展,我很高兴看到它最终被集成到 NUnit 中。

我们每天都使用它在不同的发行版和组合下测试我们的软件。举个例子:我们有一个包含大约 210 个测试的重型测试(长测试)的测试套件。他们每个人都设置了一个服务器并在命令行中运行一个客户端,运行多个操作(最多 210 个场景)。

好吧,我们使用相同的套件在不同的 Linux 组合和 Windows 变体上运行测试,并且还结合了 Windows 服务器与 linux 客户端、Windows XP、Vista、然后是域控制器、域外等等上。我们使用相同的二进制文件,然后在几个盒子上启动了"代理"。

我们使用相同的平台:平衡负载测试负载 - 我的意思是,更快地分块运行。同时运行几个组合,我觉得更有趣的是:定义多客户端场景:两个客户端等待服务器启动,然后启动操作,相互同步等等。我们还使用 PNUnit 进行负载测试(针对单个服务器的数百个盒子)。

所以,如果您对如何设置有任何疑问(恐怕还不简单),请不要犹豫。

我很久以前在 DDJ 上写过一篇关于它的文章:http://www.ddj.com/architect/193104810

希望对你有帮助


我不知道没有答案是否算作答案,但我想说您已经研究了所有内容,并且您确实想出了两种可能的解决方案...

  • 测试套件并行运行测试
  • 拆分测试套件

我对其他任何事情都束手无策。


推荐阅读

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux编译完运行命令?

    linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,

    linux命令程序运行?

    linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Lin

    linux并行化执行命令?

    linux并行化执行命令?,系统,工具,信息,命令,名称,网络,管理,首页,服务,暂停,L

    linux运行脚本命令?

    linux运行脚本命令?,系统,代码,服务,文件,工具,平台,网站,脚本,命令,方法,Lin

    linux合并行命令行?

    linux合并行命令行?,工作,系统,地址,信息,文件,代码,目录,命令,功能,内容,Lin

    linux命令后加运行?

    linux命令后加运行?,状态,暂停,工具,单位,进程,环境,网络,系统,权威,第一,mv

    ssh运行linux命令?

    ssh运行linux命令?,地址,服务,系统,软件,工具,电脑,网络,密码,名称,命令,在li

    linux运行多个命令?

    linux运行多个命令?,环境,软件,系统,工作,服务,连续,命令,指令,分号,冲突,lin

    linux运行命令查看?

    linux运行命令查看?,系统,信息,状态,命令,名称,情况,地址,软件,进程,第一,lin

    linux中命令运行软件?

    linux中命令运行软件?,软件,系统,名称,工具,电脑,位置,环境,中心,在线,初级,

    脚本linux上运行命令?

    脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,t

    linux运行命令的脚本?

    linux运行命令的脚本?,系统,服务,工具,脚本,意外,技术,分析,文件,方法,命令,s

    linux影藏运行命令?

    linux影藏运行命令?,档案,电脑,标准,设备,代码,工具,系统,查询系统,暂停,命

    linux运行脚本的命令?

    linux运行脚本的命令?,系统,工具,代码,服务,脚本,状态,密码,环境,位置,暂停,l

    linux命令行运行中断?

    linux命令行运行中断?,连续,工作,系统,信息,程序,命令,设备,工具,网络,情况,L

    vim运行linux命令?

    vim运行linux命令?,系统,工作,信息,地址,命令,标准,时间,情况,工具,基础,linu

    linux下并行运行命令?

    linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l