Asp.net mvc 3 Watin和Telerik控制

Asp.net mvc 3 Watin和Telerik控制,asp.net-mvc-3,telerik,watin,Asp.net Mvc 3,Telerik,Watin,我想问一下,是否有人知道用Watin测试Telerik控件的简单方法 我们即将开始使用它,但在此之前,我想看看是否有什么我需要知道的 我能看到的问题是,即使最小的事情发生了变化,我们所有的测试也会失败 非常感谢您的任何建议。我知道您询问了WatiN的情况,我知道我可能会被遗忘,但我可能会推荐Selenium。它似乎被更广泛地使用,当我们评估这两个版本时,我们发现Selenium更容易使用,因为Firefox插件可以记录/生成测试。这意味着我们的非技术人员可以设置测试 从那时起,我们成功地使用Se

我想问一下,是否有人知道用Watin测试Telerik控件的简单方法

我们即将开始使用它,但在此之前,我想看看是否有什么我需要知道的

我能看到的问题是,即使最小的事情发生了变化,我们所有的测试也会失败


非常感谢您的任何建议。

我知道您询问了WatiN的情况,我知道我可能会被遗忘,但我可能会推荐Selenium。它似乎被更广泛地使用,当我们评估这两个版本时,我们发现Selenium更容易使用,因为Firefox插件可以记录/生成测试。这意味着我们的非技术人员可以设置测试

从那时起,我们成功地使用Selenium测试了使用Telerik控件的ASP.NET站点。我只遇到了一个问题,关于RadNumericTextBox,我在这里记录了一个修复程序:


我目前正在写一本操作指南:无耻插头。

我知道你问过WatiN,我知道我可能会被遗忘,但我可能会推荐Selenium。它似乎被更广泛地使用,当我们评估这两个版本时,我们发现Selenium更容易使用,因为Firefox插件可以记录/生成测试。这意味着我们的非技术人员可以设置测试

从那时起,我们成功地使用Selenium测试了使用Telerik控件的ASP.NET站点。我只遇到了一个问题,关于RadNumericTextBox,我在这里记录了一个修复程序:

我目前正在写一本操作指南:无耻插头

我能看到的问题是,即使最小的事情发生了变化,我们所有的测试也会失败

这可能/将适用于页面的所有部分,包括Telerik控件,具体取决于您的测试结构。理想情况下,您的元素将分配ID,并且您将使用页面类和自定义控件对象从实际测试代码中删除所有HTML引用。然后,如果网页或控件中发生了更改,则验证更改是预期的,然后更改WatiN页面代码或控件代码并重新运行测试

WatiN page类初级读物如下:

基本上,您希望测试代码看起来像myPage.PickDate3/29/2012,而不像ie.Tables[3]。TableRows[2]。TableCells[4]。TextboxFind.ByClassdatePicker.TypeText3/29/2012

更改可以、确实并且应该导致测试失败,但是,我可以证明,通过良好的页面或控制类设置,抽象出HTML DOM和其他细节,留下非HTML填充的测试代码,这意味着当确实发生更改时,它们通常很容易重新工作

注意:Selenium还有一个页面类的概念,但到目前为止我还没有太多地使用它。一句话:如果您编写了大量直接在测试代码中引用HTMLDOM的测试,那么无论您使用WatiN或Selenium还是其他什么,您都将面临维护难题

补充:至于你原来的问题:你能在WatiN使用Telerik控件吗?是的,您很可能会这样做,但根据控件的不同,您可能需要一些创造性,甚至可能需要从测试页面对象中调用javascript方法。我被一对非Telerik的控制器难住了,但大多数我最终都明白了

我能看到的问题是,即使最小的事情发生了变化,我们所有的测试也会失败

这可能/将适用于页面的所有部分,包括Telerik控件,具体取决于您的测试结构。理想情况下,您的元素将分配ID,并且您将使用页面类和自定义控件对象从实际测试代码中删除所有HTML引用。然后,如果网页或控件中发生了更改,则验证更改是预期的,然后更改WatiN页面代码或控件代码并重新运行测试

WatiN page类初级读物如下:

基本上,您希望测试代码看起来像myPage.PickDate3/29/2012,而不像ie.Tables[3]。TableRows[2]。TableCells[4]。TextboxFind.ByClassdatePicker.TypeText3/29/2012

更改可以、确实并且应该导致测试失败,但是,我可以证明,通过良好的页面或控制类设置,抽象出HTML DOM和其他细节,留下非HTML填充的测试代码,这意味着当确实发生更改时,它们通常很容易重新工作

注意:Selenium还有一个页面类的概念,但到目前为止我还没有太多地使用它。一句话:如果您编写了大量直接在测试代码中引用HTMLDOM的测试,那么无论您使用WatiN或Selenium还是其他什么,您都将面临维护难题

补充:至于你原来的问题:你能在WatiN使用Telerik控件吗?
是的,您很可能会这样做,但根据控件的不同,您可能需要一些创造性,甚至可能需要从测试页面对象中调用javascript方法。我被一些非TeleRIK控件所困扰,但最终我还是想出来了。

你也应该考虑一下评估,我们的功能自动化测试工具。披露:我是测试工作室的传道人

当您使用Telerik控件时,Test Studio真的非常出色。通过深入了解控件的验证和操作,您将获得一些很棒的附加功能


更重要的是,Studio Studio默认处理集中定位器和页面,因此您不需要任何额外的努力来最好地管理UI更改。

您还应该考虑评估,我们的功能自动化测试工具。披露:我是测试工作室的传道人

当您使用Telerik控件时,Test Studio真的非常出色。通过深入了解控件的验证和操作,您将获得一些很棒的附加功能


更重要的是,Test Studio在默认情况下处理集中化定位器和页面,因此您不需要任何额外的工作来最好地管理您的UI更改。

我认为您不应该测试Telerik的控件-这是他们的责任。说得好!但是你如何对整个系统进行验收测试以确保其正常工作?我认为你不应该测试Telerik的控制系统-这是他们的责任。说得好!但是您如何验收测试整个系统以确保其正常工作?TestStudio也适用于任何其他控件。我们将其用于仅具有标准Microsoft控件的ASP.NET Winforms应用程序。Test Studio也适用于任何其他控件。我们将其用于仅具有标准Microsoft控件的ASP.NET Winforms应用程序。除Page类外,还有Control类,因此,尽管任务复杂,但您可以编写一个控件来封装所有Telerik功能,并仅公开有用的方法,例如calendar.PickDate3/29/2012或calendar.PageBackOneMonth。在page类中,您将公开控件,例如myPage.StartDate.PickDate3/29/2012和myPage.EndDate.PickDate4/29/2012。正如OCary所说,这将使您从维护这些测试的痛苦世界中解脱出来,并使您的测试非常可读。更好的是,使用Page类,您可以添加帮助器方法-例如,在Login Page类上,除了公开用户名和密码字段以及登录按钮外,还可以添加登录,string方法,该方法将填充适当的字段并模拟按钮的单击。通过这种方式,您可以建立一个非常强大的web应用程序模型。除了Page类,还有Control类,因此,尽管任务很复杂,但您可以编写一个控件来封装所有Telerik功能,并只公开有用的方法,例如calendar.PickDate3/29/2012或calendar.PageBackOneMonth。在page类中,您将公开控件,例如myPage.StartDate.PickDate3/29/2012和myPage.EndDate.PickDate4/29/2012。正如OCary所说,这将使您从维护这些测试的痛苦世界中解脱出来,并使您的测试非常可读。更好的是,使用Page类,您可以添加帮助器方法-例如,在Login Page类上,除了公开用户名和密码字段以及登录按钮外,还可以添加登录,string方法,该方法将填充适当的字段并模拟按钮的单击。通过这种方式,您可以构建非常强大的web应用程序模型。