繁体   English   中英

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

[英]“Art of Test” for C# Automated Web Testing in CruiseControl.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查找和与页面上元素交互的方式的布局更改的痛苦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM