CruiseControl.NET中C#自动Web测试的“测试艺术”

时间:2009-04-07 08:44:52

标签: c# nunit cruisecontrol.net web-testing webaii

我们目前使用SWEA(http://webiussoft.com)在我们的CruiseControl.NET过夜版本中运行网站的自动化测试。

我们正在寻找更强大的解决方案,我们正在寻找“测试艺术”(http://www.artoftest.com)解决方案。

有没有人使用过这个工具?

最重要的是,使用此工具维护测试有多容易?

或者您推荐其他C#/ NUnit / CruiseContol.NET解决方案吗?

4 个答案:

答案 0 :(得分:2)

我为ArtOfTest工作。在过去的几天里,我一直在研究如何让我们的框架与CruiseControl.NET很好地协作。主要关键是以控制台模式运行CruiseControl.NET服务器(而不是Windows服务)。这样做的原因是允许单元测试运行阶段能够直接与桌面交互,这是UI测试所必需的。通常,不允许在Windows服务下运行的代码与桌面(我们需要)进行交互,因此在尝试时会失败。

TeamCity也是另一个优秀的CI服务器。我现在正在看着它并且已经把它弄清楚了。

如果您有任何其他更具体的问题,请随时通过contact@artoftest.com与我们联系。我也会监视这个帖子。

WatiN也不错。不幸的是,它缺乏任何类型的VisualStudio集成,并且缺少我们提供的许多其他功能。

THX, 科迪

答案 1 :(得分:1)

以下链接是关于如何让WebAii与所有流行的CI服务器(CC,TeamCity和TFS Build)配合使用的文档

http://www.artoftest.com/support/webaii/topicsindex.aspx?topic=cioverview

答案 2 :(得分:0)

另一个选项可能是WatiN

答案 3 :(得分:0)

看起来两个大的是Watin&硒。我没有与Selenium做过任何工作,所以没有意见。

我已经使用了相当数量的Watin,它非常好,但是有很多问题。很难处理来自浏览器的响应时间差异很大...设置超时持续时间等。

最新版本的Watin支持IE& Firefox,非常酷。

就测试维护而言,根据我的经验,最重要的是将“测试驱动程序”代码与“页面包装代码”完全分开。 “测试驱动程序”是指可能具有以下代码的实际测试逻辑(NUnit或类似):

...

var wrapper = new SearchPageWrapper(browser);
wrapper.ClickAdvancedSearch();
wrapper.EnterSearchPhrase("dog");
wrapper.SetSortBy(SortType.Date);
wrapper.ExecuteSearch();

...页面包装器将此逻辑接口公开给页面本身,同时隐藏实现细节(这可能很复杂并且经常随页面布局而改变):

public class SearchPageWrapper {
  ...
  public void ClickAdvancedSearch() {
    _browser.Buttons("advSearch").Click();
  }

  public void EnterSearchPhrase(string phrase) {
    _browser.TextBox(Find.ByName("phrase")).TypeText(phrase);
  }
  ... etc ...
}

通过这种方式,您可以构建一个包装器库,这样可以轻松添加新的测试用例,并且可以减少处理影响Watin发现方式的布局更改的痛苦。与页面上的元素交互。