perl - 如何制作/构建更大的 Selenium 测试套件?

标签 perl testing selenium automated-tests test-suite

我正在为一套企业软件构建测试。我从 Test::WWW::Selenium 的作者那里得到的好建议是构建更大函数的例程,然后对它们进行参数化。所以我们有:add_user、post_blog 等等。然后可以丰富这些例程以检查页面上是否显示正确的文本等。该软件的可配置性很强,我们有数十个站点,各不相同。但是可以将这些构建 block 串在一起,并在每个站点的基础上适当修改驱动程序数据。

我在 Selenium 上发现的一切都是非常初级的,与构建更大的测试套件无关。除了这个之外还有什么吗?或者这是最好的了吗?

最佳答案

很有可能运行大量的 Selenium 测试。在我的组织中,我们每天在多个网站上运行大约 200,000 到 300,000 次测试。所以是的,这是可能的。

注意:- 我用 JAVA 编写代码,下面的所有信息都是从 JAVA 的角度来看的。

要成功使用 selenium 进行大规模测试,我认为它需要 3 个基本组件

  1. 基础设施
  2. 良好的框架和易于维护的代码
  3. 简单明了的报告

基础设施

您的基础架构应该能够支持巨大的负载。我们使用 selenium 网格(如果您使用的是 Selenium 2,那么它称为 Grid 2.0)来实现这一点。 Selenium Grid 允许我们跨多个浏览器并行运行多个测试。我们使用自己的服务器,其中部署了虚拟机来支持此测试。您可以将基础架构维护外包给 Saucelabs.com 等供应商。

框架和测试代码

您的框架必须支持多线程,并且使用 selenium 网格功能应该是线程安全的。我们使用 JAVA 来确保这种情况发生。并行运行测试 testNG用来。 testNG 可以并行运行多个方法,所有这些测试都将指向一个 Hub。然后,集线器将针对连接到它的多个远程控制 (RC) 分发所有这些测试。

当你有大量的测试时,维护是不可避免的。为了减少由于应用程序更改而导致的返工,最好遵循页面对象模型。页面对象本质上意味着 - 应用程序中的每个页面都应该在代码中有一个对应的类。您将在此类中定义该页面中可能发生的所有元素和功能。这是一个非常模块化和可重用的结构。你可以用 google 搜索 pageobject 模型,你会发现很多文章。

报告

每天运行 200,000 次测试固然很好,但如果您不能以一种易于访问的方法展示失败的内容和通过的内容,您的自动化测试就没有多大用处。有多种方法可以做到这一点。从 HTML 报告到构建自定义仪表板以显示结果。

一旦您准备好所有这些,那么您唯一需要的就是让这些测试持续运行的工具。您可以使用任何 CI(持续集成)工具来实现这一点。 Jenkins , Hudson, cruisecontrol 是最常用的 CI 工具中的少数几个。

关于perl - 如何制作/构建更大的 Selenium 测试套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705350/

相关文章:

python - 无法使用 Python 和 Selenium 打开新的 Firefox 选项卡

perl - 使用 VBScript 或 Perl 发布 Twitter 状态更新的简单方法

Java程序退出功能不起作用

multithreading - 如何使用 Perl 并发处理部分任务?

testing - Jmeter如何使用CSV Config Set的共享方式运行线程?

ruby-on-rails - 使用子存在验证创建父子 Factory Girl

javascript - 使用 Selenium、JavaScript 和 Node.js 检查元素是否存在

ruby-on-rails - Rails RSpec 意外警报打开

perl - 使用 Perl 计算文件夹中的文件数

windows - Perl 命令行解释器不退出