我们公司使用Selenium Grid已经有两年的时间,今年中开始由我们来维护我们公司的Selenium Grid。这个Grid规模挺大的,有七八十台机器,有全球各地的用户在上面运行Web的自动化测试。用户数量众多,Test Case也很多。然而Selenium Grid并没有那么给力,有时候会莫名其妙的Down掉。一开始我们每天重启一次服务,相对稳定。然而后来连一天里面都会出现这种情况。
为了解决这个问题,我痛下决心,开始漫长的调试之旅。网上相关的资料几乎没有,我也摸索了很长时间,下面记录下来跟大家分享一下。
首先,建立压力测试的环境,请参考http://shijunjuan.iteye.com/admin/blogs/1997768
然后,建立Selenium Grid的调试环境,请参考http://shijunjuan.iteye.com/admin/blogs/1997764 以调试方式启动GridLauncher
因为之前已经阅读过Selenium Grid的代码,对它的代码有一定的了解,所以没有进行更多的调试,直接开始压力测试。启动jvisualvm来监视Hub的内存和线程情况。
重现问题后,Hub hang了,在Eclipse里面Suspend 线程进行调试,查看Stack,看看卡在哪里了。也可以通过jvisualvm的ThreadDump,来查看线程卡在哪里。我看到大多数线程都停在了某一步,所以可以知道这一步出问题了。
经过这样的分析,然后再网上查阅相关的知识。Selenium Hub用了Jetty Server作为Web服务器,所以有一些问题都跟Jetty和httpclient的使用有关。
查出问题之后,我做了相应的fix,然后重新测试以验证fix的正确性。
作为开源项目,我需要提交我的fix,这样在新的版本中才能有正确的修改,这样也可以回馈Selenium社区。所以我提交了我修改,发了四个Bug, 期待等Francois回来会修改这几个问题。
i. https://code.google.com/p/selenium/issues/detail?id=6770&thanks=6770&ts=1388044086
ii. https://code.google.com/p/selenium/issues/detail?id=6771&thanks=6771&ts=1388044233
iii. https://code.google.com/p/selenium/issues/detail?id=6772&thanks=6772&ts=1388044312
iv. https://code.google.com/p/selenium/issues/detail?id=6773&thanks=6773&ts=1388044400
我的分享故事结束了,如果大家在用开源软件时,发现问题,也可以进行调试,修改,提交,积极参与开源软件的开发和改进。
相关推荐
Playwright 结合 Selenium Grid - Windows 环境使用教程 本资源提供了 Playwright 结合 Selenium Grid 在 Windows 环境中的使用教程,介绍了如何将 Playwright 连接到 Selenium Grid Hub,启动 Google Chrome 或 ...
5. **兼容性增强**:随着浏览器和操作系统版本的不断更新,Selenium Grid的最新版通常会增强对新环境的兼容性,确保在各种配置下都能稳定工作。 6. **性能优化**:性能是衡量Grid好坏的重要指标。新版本可能会通过...
Selenium Grid 是一个强大的工具,用于扩展 Selenium WebDriver 的功能,特别是在进行分布式自动化测试时。它允许用户在多台机器上并行运行测试,显著提高了测试覆盖率和效率,减少了整体测试时间。下面将详细介绍 ...
Selenium Grid 作为一种分布式测试解决方案,在提高测试效率的同时,也极大地提升了测试的覆盖率和准确性。通过支持多种语言和平台,它为开发团队提供了一个强大而灵活的测试框架。无论是对于个人开发者还是大型企业...
通过将客户端发送的命令路由到远程浏览器实例,Selenium Grid允许在远程计算机(虚拟或真实)上执行WebDriver脚本。它旨在提供一种在多台计算机上并行运行测试的简便方法。 Selenium Grid允许我们在多台计算机上并行...
selenium grid 服务端grid jar包, 用的高并发,启一个hub,多个Node
自动化测试 Selenium Grid经典案例,使用一个案例描述了Selenium Grid如何实现在不同机器上并行执行多个测试任务
然而,使用 Selenium Grid 也需要注意一些挑战,比如网络延迟问题、节点同步问题以及维护多个环境的复杂性。为了确保测试的有效性和可靠性,需要对测试架构进行良好的设计和维护,包括定期更新 Selenium 的版本以...
史上最全软件测试技术全套教程,包括: Postman Selenium 单元测试 压力测试 回归测试 安全测试 性能测试 测试工具 集成测试 等流行技术的系列教程
docker-compose-selenium-grid,包含hub,node(firefox chrome edge),版本4.1.2-20220217
在自动化测试领域,Selenium Grid 是一款不可或缺的工具,它允许我们进行分布式测试,使得测试脚本能够在多个不同的操作系统和浏览器上并行执行,极大地提高了测试效率。而VisGrid,则是针对Selenium Grid 的一个...
- WebDriver协议:Selenium 3.8.1遵循W3CWebDriver协议,这是一种标准化的接口,旨在提高跨平台和跨浏览器的测试一致性。 - Selenium Grid:该版本的Grid提供了一个灵活的框架,可以将测试分布在多台机器上执行,以...
标题中的“selenium+谷歌浏览器等.zip”表明这是一个包含与Selenium自动化测试相关的资源的压缩文件,特别是针对谷歌浏览器(Google Chrome...同时,由于Selenium Grid的存在,还可以扩展到分布式测试,提高测试效率。
UI自动化测试的优势在于能有效解决重复测试和多浏览器兼容性问题,而Selenium Grid 正是为了应对这些问题而设计的分布式测试框架。 分布式测试的基本理念是将任务分解,由多台机器并行处理,类似于一个领导者(hub...
python爬虫 - 配置强有力的js绕过神器-selenium grid分布式集群
Selenium Grid是Selenium工具集中的一个重要组成部分,主要用于提高Web应用程序功能测试的效率和扩展性。这个工具的设计目的是为了帮助测试工程师和开发人员在大规模的自动化测试场景下,能够更快速、更有效地执行...
Selenium Grid 1.0.8是该框架的一个版本,旨在提高测试效率,特别是在大型测试项目中,它允许在多台机器上并行执行测试,从而显著缩短测试时间。 **1. Selenium Grid 的核心概念** - **Hub(中心节点)**:这是...
在3.9.1版本中,Selenium Grid 提供了稳定性和性能的提升,以及对最新浏览器和操作系统的支持。 在使用Selenium Grid之前,我们需要理解以下几个关键概念: 1. **Hub**: 这是Selenium Grid的中心节点,它负责接收...