3

我们目前使用 SWEA ( http://webiussoft.com ) 在 CruiseControl.NET 夜间构建期间运行站点的自动化测试。

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

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

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

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

4

4 回答 4

2

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

TeamCity 也是另一个不错的 CI 服务器。我现在正在看它,并且大部分都已经弄清楚了。

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

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

谢谢,科迪

于 2009-04-09T21:09:36.423 回答
1

下面的链接是关于如何让 WebAii 与所有流行的 CI 服务器(CC、TeamCity 和 TFS Build)一起工作的文档

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

于 2009-05-22T23:05:47.280 回答
0

另一种选择可能是WatiN

于 2009-04-07T22:41:53.467 回答
0

似乎两个大的是 Watin 和 Selenium。我没有对 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 查找和与页面上元素交互方式的布局更改的痛苦。

于 2009-04-11T17:23:02.317 回答