Selenium Web测试自动化框架最佳实践

Siv*_*iva 33 testing testng selenium qa ui-automation

我想知道您对开发Web测试自动化框架的最佳实践的评论

  1. 我基本上都看过几个博客,终于说服在书中列出的大卫·伯恩斯方法- "硒1.0测试工具:初学者指南"中的第7章.

  2. 将特定页面的所有方法,验证器保存在单独的类文件中使其变得精致,可维护.

  3. 我想知道使用设计模式设计自动化框架的优势.我不完全相信哪种方法最好.请添加您的建议.可能每种方法我们都可以列出它的优缺点

  4. 如果我们将所有步骤存储在数据库表中,获取并执行这些步骤会不会很好?在这种情况下,如果任何测试失败,这将在表中更新,我们可以选择性地仅运行失败的测试.

  5. 此外,可以通过有选择地查询表来完成报告,并且可以通过作业从这些表中清除数据.保持测试输出文件的结果/解析结果也没问题.

  6. 如果此问题已在相关帖子中得到解答,请发布链接.在发布此问题之前我查了几篇帖子.

  7. 在网站中,与网站的用户交互是事件驱动的,用户可以与网站交互的方式可以是多种组合A-> B-> C或A-> C-> B. 进行所有可能的组合可提供最大范 基于模型的测试自动化涵盖所有可能的状

  8. 模拟所有可能状态的功能回归的自动化套件将模拟所有用户场景

  9. 请分享您对上述问题的最佳做法/建议.对于以上所有实现Dataproviders,以XML格式传递数据,我们可以利用测试数据管理.

  10. 我们需要考虑采用何种设计方法来开发基于模型的测试自动化套件.

  11. 有没有人尝试使用框架http://www.w3qa.eu/framework.html.任何评论/反馈请提供

Sam*_*kus 39

大卫伯恩斯是个聪明人.对于想要学习Selenium基础知识和测试自动化的人来说,他的书是一个很好的起点.当然,带上他的(和我的,以及其他所有人的)建议.有很多专家和许多反对意见.你必须找出最适合你的方法.

是.将所有方法,特定页面的验证器保存在一个单独的类中绝对是一个好主意.你可以将其改为"分离动作和意图"或"用域语言编程".无论哪种方式,您都希望避免在低级Selenese中编写测试.一种方法是使用Page Object测试设计模式.Selenium和其他selenium专家的许多贡献者都主张使用页面对象.这是使测试代码更健壮,可读和可重用的好方法.

了解其他设计模式也很有用,在测试框架中使用它们可能是一个好主意.不幸的是,没有单一的"最佳"方法.您可能必须使用多种模式和多种方法来实现良好的测试代码.我建议从小开始,写几个测试,注意代码气味和重新分解.您的测试框架将会增长.您不必预先设计它.敏捷.使用迭代的增量方法.(不要使用Selenium IDE)

youtube - Simon Stewart谈论自动测试模式和Selenium

您可以更好地使用Junit或TestNG等测试工具来组织测试,而不是将测试步骤放在数据库表中.TestNG具有内置功能,可以选择性地重新运行失败的测试.它还具有非常好的报告功能.不要在这里重新发明轮子.学习TestNG或Junit等测试框架.

youtube TestNG

哦,伙计......我现在不能发布超过两个链接......哦......我建议在youtube上查找GTAC视频,在viddler上查找saucelabs视频,Simon Stewarts博客,TestNG文档,页面对象示例Brett Pettichord撰写了一篇名为"自动化成功的七个步骤"的论文.

祝好运!


mes*_*chs 18

http://mestachs.wordpress.com/2012/08/13/selenium-best-practices/

  • 使用PageObjects模式
  • 能流利
    • 归还这个,varargs,泛型,
    • 重用你的模型和jodatime
  • 坚固耐用,携带方便
    • 首选选择器顺序:id> name> css> xpath
    • 避免Thread.sleep更喜欢Wait或FluentWait
    • 使用相对URL
    • 不要依赖特定的驱动程序实现
    • 创建数据集
  • 了解你的新工具
    • 保持最新(版本和使用模式)
    • 故障排除
      • jre 1.6
      • IE(缩放,保护模式设置)
      • Firefox/firebug startpage
    • 如何处理UI组件,如... fileupload,datepicker,ajaxtables,...
    • 检测何时硒不是工作的好工具
    • 不要害怕破坏硒


Eli*_*ver 7

我在五个不同的应用程序(WinRunner,LoadRunner,QuickTest Professional,TestComplete,Selenium WebDriver)下编写了代码测试框架,我发现有很多东西对我有用:

  1. 如果测试套件意味着快速而有意义,那么您不需要框架.我的第一次测试主要是基于框架的.
  2. 当您进入更复杂的应用程序时,对象存储库(用于GUI应用程序)和页面对象(用于Selenium WebDriver)使工作更有效.
  3. 我倾向于花时间研究工具来帮助测试过程并平滑工具的边缘.

我使用TestNG,WebDriver和Spring来构建我现在的测试框架.我将这个框架的一部分拉到自己的OSS库中,以便其他人可以重用它们.现在我可以注入自定义元素类型,并且我添加了一些基本类型来进行表单工作.它真的很粗糙,它不是一个独立的框架; 你必须将它集成到你自己的框架中,但我尝试将依赖关系保持在最低限度.