我的查询与此Selenium RC / Webdriver的选择框架类型有关。

我是Selenium的初学者,想知道如何在Selenium Webdriver中选择或选择框架。需要考虑的关键点是什么?
和文件夹结构(简单的层次结构)。

如果准备好要在当前版本或其他版本上使用的密钥/数据驱动/混合驱动框架,那是很好的还可以进行应用程序(只需最小的更改就可以全部使用)?

#1 楼

Selenium / Webdriver是一个很棒的工具,但是它带来一些管理上的开销。首先是选择要使用的编程语言绑定。无论最终结果是什么,将长期成为该项目的标准,并且取决于您希望用来构建该项目的人员的水平,它可能会极大地影响您的选择。了解维护成本,并尝试使用与生产软件相同的软件工程原理进行构建。这意味着,如果它是面向对象的,则使用一些设计,然后经常对其进行重构,以消除不必要的框架重复。尝试将每个页面的定位符保留在不同的文件/类中,并且添加到框架中的每个类都应具有明确的目的。当您看到重构的机会时,因为某件事在其他地方会很不错,那么那就做吧,不要等到重构。

要考虑的另一件事是后端问题,例如:How am我要设置和维护Selenium网格/集线器/节点实例吗?我将如何启动测试(可能会有所不同,具体取决于您打算如何运行它们,您可能实现的是哪种连续集成服务器。)您还可能需要先考虑一下,我是否打算包括行为驱动的开发,例如Cucumber, JBehave或Specflow(或类似的东西)。如果您愿意,我建议您先从框架的广度入手,并尽早构建它。您等待的时间越长,最终可能需要进行更多的测试。

记住要提供良好的健壮客户端,api包装器,用于旋转数据的机制或根据需要生成测试夹具。保持简单,但易于使用。确保您还将拥有有效进行编码所需的编码工具。 (使用SeleniumIDE,然后复制导出内容,是开始学习的好地方,但在某些时候,对这种工具的需求应减少)。提供高质量的IDE,源代码控制和足够的基础结构来运行测试,否则将会浪费很多精力。

如果您可以为数据库或网站的API构建适配器,然后,一定要这样做,将测试以及它们属于框架的任何其他类(本身不是测试)包装起来,并定期运行这些测试。使用API​​设置尽可能多的数据,避免仅在UI中进行设置和拆卸。此外,如果您可以启动环境,进行部署,然后运行测试,则可能不必担心清理问题。我说可以,因为在某些情况下,有必要进行下一次测试的清理。

最后,请做好维护准备。准备好寻找看似平淡无奇的测试,但实际上却没有像以前那样同步的行为无症状。尝试使测试尽可能小,但要足够详细,以免降低房屋质量。老实说,我将非常专注于UI测试,并对您打算涵盖的内容以及希望留给下级单元测试的内容制定明确的策略。 (可能没有足够的时间为您想到的每种情况编写硒测试)。

我希望这会有所帮助。

#2 楼

选择自动化方法(基于数据驱动/基于关键字/混合/)时要考虑的要点如下-


应用程序是否正在测试-数据密集型? -最好采用数据驱动方法。
应用程序是否更多地涉及功能测试(例如工作流程)-更好地采用关键字方法-特别是如果必须重复这些功能测试而不更改数据的话。
但是-我遇到的大多数应用程序都有两者->它们具有大量的功能并处理高度变异的数据-然后我们应该使用混合框架-本质上来说,您可以对不同的数据范围执行各种功能测试。
个人-最好的方法是混合框架,在该框架中,关键字对应于功能测试中的最小组件(例如,登录名是一个关键字,用户名和密码将不断变化)

Selenium Webdriver是与Java结合的功能强大的库-可能性是无限的!