4

有人对经典 ASP 站点进行自动化 QA 测试吗?我开始研究 WatIn 和 MBUnit,但不确定构建测试的最佳方式。

4

3 回答 3

2

新的 WatiN 2.0 beta 1 确实提供了一些基类来帮助您构建测试类。

它基本上归结为每个页面都有一个类(继承 WatiN.Core.Page 类)。在这些页面类中,您可以为要访问的每个控件添加属性。就像是:

public Button OkButton
{
    get { return Document.Button("okbuttonId");
}

并且您可以创建方法来将一些更复杂的操作包装到页面中。例如:

public void AddPerson(string name, string email)
{
    /// logic goes here tp click on NewButton, set the textfields and click on OkButton
}

这些页面类提供了在一个地方定义元素的优势。

在您的测试代码中,您可以创建一个页面类,如下所示:

using(var ie = new IE("www.somedomain.com/person"))
{
  var page = ie.Page<PersonDetailPage>();
  page.AddPerson("J. Doe", "jdoe@example.com");

  // Do some Assert
}

另一个可以帮助您构建代码的有趣基类是 Control 类。当您使用 ASP 时,您将使用不会仅呈现到呈现页面中的一个 html 元素的控件。相反,它通常是包含在 Div 元素中的元素的构造。创建自己的控件类并继承 Control 时,您将能够包装控件 (html) 内部结构和行为。这使得在页面类中重用控件变得非常容易。以下是有关如何实例化控件的示例:

var calendar = Document.Control<CalendarControl>("calendarId");

希望这能让您对如何构建页面和控件有所了解。

杰伦

于 2009-04-08T09:05:53.747 回答
1

FWIW,过去 3 年我们一直在使用 WatiN 和 MbUnit 进行 Web 集成测试。

我们将测试分为 3 个项目:

  1. QA.Framework:包含用于设置测试夹具和各种自定义 MbUnit 和 WatiN 扩展的胶水代码。

  2. QA.SiteMap:包含分层次排列到命名空间中的页面和控制类,这些命名空间对应于站点的不同域和部分。该项目用于将测试与网站结构的主要部分分离。您可以将其视为网站的模型。

  3. QA.Tests:包含实际测试,也分层排列到命名空间中。测试根据需要利用站点地图和框架与网站交互。这样,与每个测试一遍又一遍地包含相同的按钮 ID 相比,代码重复要少得多……

杰夫。

于 2009-04-14T00:31:35.607 回答
0

我用Watir测试了 ASP 站点。如果您正在寻找一种构建测试的方法,请查看WatirCraft 框架

于 2009-04-08T07:42:56.443 回答