9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

Selenium Grid: 并行的 Web 测试

  • 2007-09-28
  • 本文字数:1613 字

    阅读完需:约 5 分钟

很多敏捷团队已经使用了 Selenium Watir 等 工具进行验收测试或用户接口测试。这些工具通过驱动 Web 浏览器的方式反映用户体验,并且为测试那些使用 DHTML 和 Ajax 构建的动态接口提供强力支 持。然而,随着更多的团队采纳类似的工具,他们发现,运行这一整套浏览器驱动的 Web 接口测试会花费很长时间,而导致构建太慢。敏捷团队可能就不得不在全 面测试和构建速度之间做出艰难的选择。使用 Selenium 的用户中,有人通过使用 Selemium-RC 运行多个测试,也有人将测试分配给多个 Selemium-RC 运行测试,但帮助有限。虽然对于少量并行是有效的,但对于大量并行却无能为力。Selenium 用户现在有了另一种选择: Selenium Grid

Selenium Grid 是 Selenium 的一个扩展,也是免费且开源的 (Apache License 2.0)。它把管理一小撮 Selenium-RC 实例的事情和为了运行一个测试而连接一个 Selenium 实际的事情分开了。实际上,Selenium Grid 是提供了一个 hub,象个用于控制测试的远程控制器,但是是显式地将测试请求发送到一个或多个机器上的某个有效的 Selenium-RC 实例上。这个 Selenium Hub 负责以下这些事情:

  • 将一个 SeleniumRC 显式地分配给一个具体的测试
  • 限制在每个 RC 最大并发测试数
  • 将测试屏蔽在一个实际的网格结构之外。

使用 Selenium Gird 时,Selenium 测试可以通过名称选择具体环境的实例,例如某个测试可以运行在 Windows XP 系统的 IE7 上,而其它实例却指定运行在 Ubuntu 的 Firefox 1.5 之上。

更重要的是,它允许组织构建一个复杂的包含多种必要的测试环境的测试机群,并在其上并行运行一个或多个项目的测试。这将在测试方面有显著的提高,最终减少每个项目所需要的基础设施。某些大型组织对这一点认识的最为深刻(比如 Google 就在用相似的方法),但即使是对于单个项目的单个机器也是有价值的。

Selenium-RC 最近已经大幅度地改进了性能,包括在单一线程的环境下。但是,多机器多线程测试对于长时间测试来说还是有相当大的益处的。利用足够的测试处理能力和测试的独立性,对于减少最长测试的时间是可行的。

虽然这些测试可以不必知道自己是在单机上顺序运行还是运行于整个机群,但 Selenium Grid 却不负责这些测试的并行执行,这些是由 TestNG Parallel JUnit DeepTest for Ruby 等完成的。

InfoQ 采访了 Selenium Grid 的团队成员,并问及并行执行测试可能对 Selenium 测试用例的影响:

我们讨论过隔离性,以及开发 Grid 之前所面临的问题。我们想现在就把这个担子交给写测试的人,让他们来设计测试用例,以确保它们之间不会相互影响。当 然,这个问题在 Gird 产生之前就已经存在了。你不想让你的 Selenium 受其执行顺序的影响,那在每个测试执行之前要做一些数据初始化工作,执行这后 再清理掉。然而,这不是一个优雅的解决方案。理想情况下,你的 Selenium test 最好只了解这个应用的前端,但实际上,通过暴露一点数据给测试,会使针对具体的 Scenarios 写测试比较快且方便,而且由于只要较少的导航页 就可达到被测试页,运行时间会较少。嗯,看来有一点儿道理啦!但是不管怎么样,我们还是希望 Grid 能够支持这两种方式,不久前我们找到了一些方法可以在 数据库层隔离这些测试。虽然还只算是 alpha 版,但它可能会成为 Grid 的一部分,也可有是一个独立的项目。

在谈到 Selenium Grid 的未来时,开发团队认为以下特性中的内容最终会成为 Selenium Grid 的一部分:

  • 一个更完善的管理控制台
  • 成为 Windows 服务 (以及 solaris,Linux 等操作系统的等价物)
  • 屏保功能(桌面电脑在闲置时可以加入 Grid)
  • 为用 Amazon’s EC2 (Electronic Compute Cloud) 基础设施作为 Selenium 测试机群提供支持

ThoughtWorks 将为那些希望了解和使用 Selenium-RC 和 Selenium Grid 提供支持和咨询服务。

想了解更多,请访问 Selenium Grid 的网站 (正准备在 OpenQA 上立项),也可以在 InfoQ 了解更多关于测试单元测试 的相关内容。

查看英文原文 Selenium Grid: Web Testing in Parallel

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2007-09-28 21:262285
用户头像

发布了 100 篇内容, 共 20.3 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

阿里云视频云vPaaS低代码音视频工厂:极速智造,万象空间

阿里云视频云

音视频 低代码 视频云 视频开发

激发数字化时代权益运营新动能

鲸品堂

运营 数字化 通信运营商

盘点 2022 云原生实战峰会重磅发布

阿里巴巴云原生

阿里云 开源 容器 云原生

热门链游GameFi项目Radio Caca 联手Hoo虎符撒空投

区块链前沿News

Hoo 虎符交易所 链游 RACA

【量化】量化交易入门系列5:量化交易学习书籍推荐(一)

恒生LIGHT云社区

金融科技 量化策略 量化投资 量化交易 量化

澳鹏中国智能可配置工作流(Workflow 2.0)全新升级

澳鹏Appen

人工智能 工作流 workflow 数据标注 训练数据

阿里云消息队列 2021 新功能新特性重要里程碑

阿里巴巴云原生

kafka 阿里云 RocketMQ 云原生 消息队列

AI+CFD:面向空天动力的科学机器学习新方法与新范式

百度开发者中心

飞桨

如何保证redis与数据库一致性

zdd

redis

便捷、高效、智能—从运维视角看星环科技大数据基础平台TDH

星环科技

大数据

恒源云(GPUSHARE)_CV领域有关【直方图】的论文小记

恒源云

深度学习 CV

深度解读企业云上办公利器「无影云电脑」

阿里云弹性计算

阿里云 无影云电脑

复旦大学陈平博士:网络攻击猖獗,如何应对数据安全与内生安全挑战?

星环科技

网络安全

Form 表单在数栈的应用(上): 校验篇

袋鼠云数栈

大数据 前端

网易云信又双叒受到Gartner关注,看看这次的报告说了什么?

网易云信

Gartner 通信平台 CPaaS

netty系列之:让TCP连接快一点,再快一点

程序那些事

Java Netty 程序那些事 1月月更

【量化投资入门】带你通过恒有数数据接口来实战量化指标

恒生LIGHT云社区

量化策略 量化投资 量化交易 量化

Sql server之sql注入篇

喀拉峻

网络安全 信息安全 SQL注入

白话大数据 | 元宇宙来了,但是你了解元数据吗?

星环科技

元数据

极客星球 | MobPush之FCM离线消息解密

MobTech袤博科技

FCM 离线消息

人员流动大,简历管理纷杂怎么办?用低代码可以解决嘛?

优秀

低代码

为企业选择合适的CRM系统的技巧

低代码小观

CRM 客户关系管理 CRM系统 客户关系管理系统 企业管理软件

12 Prometheus之监控Kubernetes

穿过生命散发芬芳

Prometheus 1月月更

【分布式技术专题】「Zookeeper系列」为大家介绍一下 Zookeeper 的"开发伴侣"—Curator-Framework(组件篇)

洛神灬殇

zookeeper ZooKeeper原理 1月月更 Curator-Framework

【分布式技术专题】「Zookeeper系列」为大家介绍一下Zookeeper的"开发伴侣"—Curator-Framework(基础篇)

洛神灬殇

zookeeper curator 1月月更 CuratorFramework

数据库审计设备选择哪家好?谁能告知?

行云管家

数据库 服务器 数据库审计

【堡垒机】2022年企业买堡垒机就选行云管家!五大优点看这里!

行云管家

等保 堡垒机 过等保 等保2.0

【数据库】查询优化之子连接优化

恒生LIGHT云社区

数据库 sql SQL子查询 子查询

如何高效上架HarmonyOS原子化服务?这个平台帮你搞定!

HarmonyOS开发者

HarmonyOS

CODING 携手 Thoughtworks 助力老百姓大药房打造“自治、自决、自动”的敏捷文化

CODING DevOps

敏捷 thoughtworks CODING 项目协同 老百姓大药房

Android技术分享| Android WebRTC 对 AudioRecord 的使用

anyRTC开发者

android 音视频 WebRTC 移动开发 AudioRecord

  • 扫码添加小助手
    领取最新资料包
Selenium Grid: 并行的Web测试_研发效能_Geoffrey Wiseman_InfoQ精选文章