我们目前使用SWEA(http://webiussoft.com)在我们的CruiseControl.NET过夜版本中运行网站的自动化测试。
我们正在寻找更强大的解决方案,我们正在寻找“测试艺术”(http://www.artoftest.com)解决方案。
有没有人使用过这个工具?
最重要的是,使用此工具维护测试有多容易?
或者您推荐其他C#/ NUnit / CruiseContol.NET解决方案吗?
答案 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发现方式的布局更改的痛苦。与页面上的元素交互。