我想知道您对开发Web测试自动化框架的最佳实践的评论
我基本上阅读了几个博客,并最终确信书中列出的大卫伯恩斯方法 - "Selenium 1.0 Testing Tools: Beginner’s Guide"中的chapter 7。
将特定页面的所有方法,验证程序保存在单独的类文件中,使其更加精细,可维护。
我想知道使用设计模式设计自动化框架的优势。我不完全相信哪种方法最好。请添加您的建议。我们可以列出每个方法的优点 -
如果我们将所有步骤存储在数据库表中,获取并执行这些步骤会不会很好?在这种情况下,如果任何测试失败,这将在表中更新,我们可以选择性地仅运行失败的测试。
此外,可以通过有选择地查询表来完成报告,并且可以通过作业从这些表中清除数据。保持测试输出文件的结果/解析结果也没问题。
如果此问题已在相关帖子中得到解答,请发布链接。在发布此问题之前,我查了几篇帖子。
在网站中,与网站的用户交互是事件驱动的,用户可以与网站交互的方式可以是多种组合A-> B-> C或A-> C-> B 。进行所有可能的组合可提供最大范基于模型的测试自动化涵盖所有可能的状态
模拟所有可能状态的功能回归的自动化套件将模拟所有用户场景
请分享您对上述问题的最佳做法/建议。对于以上所有实现数据提供者,以XML格式传递数据,我们可以利用测试数据管理。
开发基于模型的测试自动化套件需要考虑哪种设计方法。
是否有人尝试使用框架http://www.w3qa.eu/framework.html。如有任何意见/反馈,请提供
答案 0 :(得分:38)
是。将所有方法,特定页面的验证器保存在一个单独的类中绝对是一个好主意。你可以将其改为“分离动作和意图”或“用域语言编程”。无论哪种方式,您都希望避免在低级Selenese中编写测试。一种方法是使用 Page Object test design pattern 。 Selenium和其他selenium专家的许多贡献者都主张使用页面对象。这是使测试代码更健壮,可读和可重用的好方法。
了解其他设计模式也很有用,在测试框架中使用它们可能是一个好主意。不幸的是,没有单一的“最佳”方法。您可能必须使用多种模式和多种方法来实现良好的测试代码。我建议从小开始,写一些测试,注意代码气味和重新分解。您的测试框架将会增长。您不必预先设计它。敏捷。使用迭代的增量方法。 (不要使用Selenium IDE)
youtube - Simon Stewart Talks about automated test patterns and Selenium
不是将测试步骤放在数据库表中,而是使用Junit或TestNG等测试工具组织测试可能更好。 TestNG具有内置功能,可以选择性地重新运行失败的测试。它还具有非常好的报告功能。不要在这里重新发明轮子。学习像TestNG或Junit这样的测试框架。
哦,伙计......我现在不能发布两个以上的链接......哦......我建议在youtube上查找GTAC视频,在viddler上查找saucelabs视频,Simon Stewarts博客,TestNG文档,示例页面对象和Brett Pettichord的论文称为自动化成功的七个步骤。
祝你好运!答案 1 :(得分:18)
http://mestachs.wordpress.com/2012/08/13/selenium-best-practices/
答案 2 :(得分:7)
我在五个不同的应用程序(WinRunner,LoadRunner,QuickTest Professional,TestComplete,Selenium WebDriver)下编写了代码测试框架,我发现有很多东西对我有用:
我使用TestNG,WebDriver和Spring来构建我现在的测试框架。我将这个框架的一部分拉到自己的OSS库中,以便其他人可以重用它们。现在我可以注入自定义元素类型,并且我添加了一些基本类型来进行表单工作。它真的很粗糙,它不是一个独立的框架;你必须将它集成到你自己的框架中,但我尝试将依赖关系保持在最低限度。
答案 3 :(得分:4)
嘿。
如果你真的想要分离逻辑,最后你想为你的应用程序构建测试自动化框架,然后编写将使用这个新api的单元测试,而不是仅仅编写单元测试。大多数程序员可能会说不再是单元测试......也许他们不会。但这并不重要。你仍然可以做得很好。以下是链接,应该让你去。虽然他们谈到创建在整个应用程序(gui级别)上运行的功能测试,但我认为您可以应用相同的方法来实现您的目标。我简短介绍了如何编写3层测试,因此您将逻辑与实现分离。
答案 4 :(得分:4)
我的朋友们,如果您正在进行自动化测试,请确保以下事项:
感谢。