较长的版本:
我们的测试人员有很多针对内部业务线Web应用程序的手动回归测试列表。我正在尝试帮助实现这些测试的自动化,以便可以按需运行这些测试,也可以在每次自动构建结束时运行它们。
我们是一家提供Web应用程序的.NET商店,内部的Web应用程序是仅限IE。我没有改变任何一个事实。
鉴于上述情况,看来我们对测试框架的要求是:
需要记录并在IE中运行测试
记录测试时无需涉及编码(其他.NET开发人员,我可以并且将需要做一些最少的编码来创建测试套件,处理任何动态数据等)。
需要处理一些Javascript,AJAX等。
强大的首选项包括:
用于运行测试的代码可以用.NET编写,并且测试可以集成到Visual Studio和/或MSBuild项目中。 Java是遥不可及的第二选择,其他任何事情都将是非常不利的。我知道其他语言,并且我相信其他开发人员也可以,但是当我们以后雇用开发人员时,对语言的要求会减少是一件好事。
有效的开源工具很棒。商业工具当然不是不可能的,但是我们确实需要限制成本,并且工具肯定需要物有所值。我不知道确切的位置,但是有人告诉我,例如Rational套件可能太昂贵而无法批准。
使用该工具和好的文档的活跃社区将是很好的。不断开发和改进的工具也是一件好事。
最初,在我看来,WatiN与WatiN Test Recorder结合可以很好地满足我们的要求。那是在我尝试它们之前。我只试用了Test Recorder的2.0 Beta,但似乎仍然存在一些问题(甚至纠正了无法在64位Win7上运行股票安装的问题)。
我记得watin.org (此刻下来,尽管问题似乎正在调查中)至少暗示有多种测试记录解决方案,尽管WatiN Test Recorder被认为是最好的,但我一直找不到它们。有没有?
最后,如果我不能使这些工具对我们有用,那么有什么好的替代方案可以满足我提出的要求?
#1 楼
这里的关键问题是:“为什么要使用记录和播放技术,而不是使用页面对象编码测试?”我可以想到两个原因:您的团队缺乏在不使用Record and Playback的情况下使用C#进行代码测试的技术能力。
您只是没有意识到还有其他原因创建更强大,更容易维护(并且经过一些初步努力即可更快)的自动UI测试的方法。但是,您有一些测试人员可以编写质量代码,而不必完全依赖于记录和回放。
如果您的团队属于类别1,最好的选择可能是使用Selenium记录您可以使用的所有内容Firefox,然后使用IE开发人员,这是一些常识,也可能是开发人员的一些帮助,以填补FireFox无法使用的功能。然后,您可以将自动化设置为在IE中运行(恐怕我不知道如何操作,但是我之前已经做到了),然后针对正确的浏览器实际运行自动化。请注意,这样做时,这样的“记录和播放”测试本质上是脆弱的且难以维护,请明智地选择要测试的UI区域。
如果您的团队属于类别2 ,您有一个更好的选择,Dmitry在他的回答中给出了。此解决方案-编码的页面对象-与Selenium RC或WatiN一起使用。也不认为自己是开发人员的测试人员倾向于使用Selenium,这可能部分是由于使用Record and Playback来获得有关开发方式的提示的能力,而开发人员则倾向于使用丰富的WatiN库。 Selenium可能会在测试人员社区中得到更强大的支持。
这里讨论了使用WatiN的Page Object设计。您还应该阅读有关附加浏览器和FindBy属性的文章。德米特里与硒有很好的联系。
评论
类别1,但删除“团队”并将其替换为“测试人员”。我们需要测试人员现在能够在大多数情况下处理测试,而且她不是程序员。如果该网站可以在Firefox中运行,那么我肯定会推荐Selenium。但是,事实并非如此,并且业务规范说仅IE。我并不是说我完全同意这一决定,但是我在这里还很陌生,现在还不能更改该因素。
–安德鲁(Andrew)
11年8月12日在18:57
我认为您与WatiN的合作将会很困难。记录和播放与Selenium不在同一级别。我认为您需要开始评估商业工具并确定预算,或者看看是否可以让开发人员使用用于测试人员的脚本语言来构建和维护WatiN UI库。我已经建立了一个使用反射的解析器的UI库(因此,我不需要解析每个命令,只需添加该方法即可对其进行解析)。如果您对此方法感兴趣,那么我可以在答案中看到一些摘要。花了几天时间。
– Ethel Evans
11年8月12日在21:06
#2 楼
我已经转到Selenium和WebDriver进行单元测试。我没有尝试在FireFox IDE中记录任何内容,因为我可以在JUnit中编写测试。http://seleniumhq.org
评论
这至少在表面上不符合要求。当然,这个问题已经关闭(暂时)。
–安德鲁(Andrew)
2011年8月11日在20:31
#3 楼
首先,请阅读以下精彩的博客文章:保持测试干燥
该文章指的是Page Object模式,它有助于使代码干净。我正在WatiN上进行自动化,并使用此模式,而不是逐步记录并复制将单击内容粘贴到用户登录屏幕上。
IE Developer –这就是我所需要的。
当然,只有在您的应用程序应该支持IE和/或Firefox的情况下,WatiN才是好的。
如果您想要一个支持所有现代浏览器的框架–请考虑使用Selenium。
评论
硒通常是我选择这种东西的工具。我选择其他选项的唯一原因是该站点仅IE。我什至试过,它甚至在Firefox中甚至都无法使用。不过,博客文章绝对为+1。
–安德鲁(Andrew)
11年8月12日在18:52
#4 楼
如果自动化需要围绕自动化和IE进行,则其中一个选项是Visual Studio Ultimate,它确实具有记录和回放功能以及一些编码选项,因此尽管Tester习惯了该接口,最终还是可以使用相同的环境以C#或甚至不使用CodedUI模块来创建可重用的功能/模块。您没有提到成本,并且除非拥有正确的MSDN订阅,否则VS Ultimate并不便宜,因此我将其作为一种选择我正在使用。
过去我还使用Visual Studio(不是Ultimate)编写使用Selenium的测试,最近我转换到了Selenium 2 Webdriver,它非常漂亮。
评论
根据Sourceforge邮件列表,与watin.org有关的是一个内存问题,正在研究中。 WatiN还没有死。没有关于测试记录器的线索。记录和回放需求也是如此,因为您正在帮助的测试人员无法编写代码?
可能与针对构建运行测试的自动化需求有关。
但是,您可以在没有“记录与播放”的情况下针对构建运行自动测试。能够满足OP的需求是一个关键问题。
watin.org网站已备份。