我们目前使用 SWEA ( http://webiussoft.com ) 在 CruiseControl.NET 夜间构建期间运行站点的自动化测试。
我们正在寻找一个更强大的解决方案,我们正在寻找“测试艺术”(http://www.artoftest.com)解决方案。
有没有人使用过这个工具?
最重要的是,使用这个工具维护测试有多容易?
或者您会推荐任何其他 C#/NUnit/CruiseContol.NET 解决方案吗?
我们目前使用 SWEA ( http://webiussoft.com ) 在 CruiseControl.NET 夜间构建期间运行站点的自动化测试。
我们正在寻找一个更强大的解决方案,我们正在寻找“测试艺术”(http://www.artoftest.com)解决方案。
有没有人使用过这个工具?
最重要的是,使用这个工具维护测试有多容易?
或者您会推荐任何其他 C#/NUnit/CruiseContol.NET 解决方案吗?
我为 ArtOfTest 工作。在过去的几天里,我一直在研究如何让我们的框架与 CruiseControl.NET 很好地配合使用。主要的关键是在控制台模式下运行 CruiseControl.NET 服务器(而不是作为 Windows 服务)。这样做的原因是为了让单元测试运行阶段能够直接与桌面交互,这是 UI 测试所必需的。通常,在 Windows 服务下运行的代码不允许与桌面交互(这是我们需要的),因此在尝试时会失败。
TeamCity 也是另一个不错的 CI 服务器。我现在正在看它,并且大部分都已经弄清楚了。
如果您有任何其他更具体的问题,请随时通过contact@artoftest.com 与我们联系。我也会监视这个线程。
WatiN 还不错。不幸的是,它缺少任何类型的 VisualStudio 集成,并且缺少我们提供的许多其他功能。
谢谢,科迪
下面的链接是关于如何让 WebAii 与所有流行的 CI 服务器(CC、TeamCity 和 TFS Build)一起工作的文档
http://www.artoftest.com/support/webaii/topicsindex.aspx?topic=cioverview
另一种选择可能是WatiN。
似乎两个大的是 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 查找和与页面上元素交互方式的布局更改的痛苦。