22-selenium之grid分布式测试

简介: 22-selenium之grid分布式测试

前言

  • Selenium GridSelenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上。

Selenium Grid介绍

  • Router : 路由,负责将请求转发到正确的组件。它是Grid的入口点,它将接收所有外部请求。路由器的行为取决于请求。如果是新的会话请求,则路由器会将其转发到“新会话队列”,该会话将其添加到“新会话队列”。
  • Distributor:主要作用是接收新的会话请求并找到可以在其中创建会话的合适节点。创建会话后,分发服务器在会话映射中存储会话ID与正在执行会话的节点之间的关系。
  • Node:节点,可以在网格中出现多次。每个节点负责管理其所运行机器的可用浏览器的运行。。
  • Session Map:用于保存会话ID和会话正在运行的节点的信息。它在将请求转发到节点的过程中为路由器提供支持。路由器将向会话映射询问与会话ID关联的节点。当以完全分布式模式启动Grid时,Session Map是应该启动的第一个组件。
  • New Session Queue:新会话队列器,从路由器接收新的会话请求,并将其添加到队列中。排队器等待,直到收到请求的响应为止。如果请求超时,则该请求将立即被拒绝,并且不会添加到队列中
  • Event Bus:分发服务器,新会话队列器和会话映射之间的通信路径。

下载selenium  grid

运行selenium grid

  文档:https://github.com/SeleniumHQ/selenium/wiki/Grid2

 1. 命令行启动

  step1:启动hub节点

  • java -jar selenium-server-standalone-3.141.59.jar -role hub   -port 4444

   step2:启动node节点

   step3:编写脚本验证

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/3/6
3. # @Author  : 大海
4. 
5. from selenium import webdriver
6. 
7. ds = {'platform': 'ANY',
8. 'browserName': "chrome",
9. 'version': '',
10. 'javascriptEnabled': True
11.       }
12. driver = webdriver.Remote('http://192.168.96.1:4444/wd/hub', desired_capabilities=ds)
13. driver.get("https://www.baidu.com")
14. print(driver.name)
15. 
16. driver.quit()

 2. Json配置文件启动

   step1:创建hub配置文件

  • 修改端口即可,保存为 hub_config.json文件
  • 启动hub:java -jar selenium-server-standalone-3.141.59.jar -role hub -hubConfig hub_config  
1. {
2. "port": 4444,
3. "newSessionWaitTimeout": -1,
4. "servlets" : [],
5. "withoutServlets": [],
6. "custom": {},
7. "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
8. "registry": "org.openqa.grid.internal.DefaultGridRegistry",
9. "throwOnCapabilityNotPresent": true,
10. "cleanUpCycle": 5000,
11. "role": "hub",
12. "debug": false,
13. "browserTimeout": 0,
14. "timeout": 1800
15. }

   step2:创建node配置文件

  • 修改hub和port,其他保持不变即可,保存为 node_config.json文件
  • 启动node:java -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node_config
1. {
2. "capabilities":
3.   [
4.     {
5. "browserName": "firefox",
6. "marionette": true,
7. "maxInstances": 5,
8. "seleniumProtocol": "WebDriver"
9.     },
10.     {
11. "browserName": "chrome",
12. "maxInstances": 5,
13. "seleniumProtocol": "WebDriver"
14.     },
15.     {
16. "browserName": "internet explorer",
17. "platform": "WINDOWS",
18. "maxInstances": 1,
19. "seleniumProtocol": "WebDriver"
20.     },
21.     {
22. "browserName": "safari",
23. "technologyPreview": false,
24. "platform": "MAC",
25. "maxInstances": 1,
26. "seleniumProtocol": "WebDriver"
27.     }
28.   ],
29. "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
30. "maxSession": 5,
31. "port": -1,
32. "register": true,
33. "registerCycle": 5000,
34. "hub": "hub地址",
35. "nodeStatusCheckTimeout": 5000,
36. "nodePolling": 5000,
37. "role": "node",
38. "unregisterIfStillDownAfter": 60000,
39. "downPollingLimit": 2,
40. "debug": false,
41. "servlets" : [],
42. "withoutServlets": [],
43. "custom": {}
44. }

 

相关文章
|
5天前
|
Web App开发 数据采集 测试技术
五分钟轻松掌握 Python 自动化测试 Selenium
本文主要介绍了 Selenium 相关内容,主要涉及 Selenium 知识面,从开始的 Python 小案例,到后面的 API 全面了解,以及 Selenium 的常用功能,到最后的 XPATH 以及爬虫的认知。这些内容已经能够全面,且具有实践性。
|
5天前
|
资源调度 Java 调度
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
|
8天前
|
Web App开发 IDE 测试技术
天呐!当揭开 Selenium 自动化测试框架的神秘面纱,设计与实现令人瞠目!
【8月更文挑战第12天】Selenium 是一强大自动化测试框架,用于Web应用测试。它含WebDriver、IDE和Grid等工具,支持Chrome、Firefox等浏览器。可通过编程模拟用户交互验证应用功能。例如使用Python结合Selenium WebDriver编写自动化测试脚本,实现打开网页、操作元素及断言等功能。还可结合测试框架和Selenium Grid提升测试效率和并行执行能力。
20 1
|
16天前
|
Web App开发 人工智能 测试技术
探索自动化测试的高效之路:以Selenium为例
【8月更文挑战第4天】在软件开发周期中,测试阶段扮演着至关重要的角色。自动化测试作为提高测试效率和准确性的有效手段,已逐渐成为开发流程中的标配。本文将通过介绍Selenium这一流行的自动化测试工具,探讨如何构建高效的自动化测试框架,并通过实际代码示例,揭示其在提升软件质量与开发效率方面的巨大潜力。
|
18天前
|
Web App开发 Java 测试技术
自动化测试中的神器:Selenium WebDriver
【8月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘航船,而Selenium WebDriver则是这艘航船上的强力引擎。本文将带你领略Selenium WebDriver的魅力,从安装到实战应用,一步步揭开其神秘的面纱,让你在自动化测试的旅程上乘风破浪。
18 1
|
29天前
|
监控 Java 测试技术
确保Selenium WebDriver配置与测试环境兼容
确保Selenium WebDriver配置与测试环境兼容
|
1月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
44 2
|
19天前
|
Web App开发 JavaScript 前端开发
探索自动化测试:以Selenium为例
【8月更文挑战第1天】在软件开发的海洋中,自动化测试如同一艘航船,它能够带领我们高效地穿梭于代码的波涛之中。本文将揭开自动化测试的神秘面纱,通过一个具体的例子—使用Selenium进行Web应用测试—来展示其魅力所在。我们将从搭建环境开始,逐步深入到编写测试用例,最后实现测试的自动化执行。这不仅是一次技术的探险,更是对效率和质量双重追求的体现。那么,让我们一起启航,去发现自动化测试的力量吧!
|
20天前
|
Web App开发 Java 测试技术
探索自动化测试的利器:Selenium WebDriver
【7月更文挑战第31天】在软件开发的海洋中,自动化测试如同指南针,为质量保驾护航。本文将深入介绍Selenium WebDriver这一强大的自动化测试工具,通过实际代码示例,揭示其在提高测试效率与准确性方面的巨大潜力。
14 0
|
20天前
|
Web App开发 测试技术 API
自动化测试的利器:Selenium WebDriver
【7月更文挑战第31天】在当今软件开发周期不断缩短的背景下,自动化测试已成为确保软件质量不可或缺的一环。Selenium WebDriver作为一款流行的自动化测试工具,以其灵活性和强大的功能受到广大开发者的喜爱。本文将深入探讨Selenium WebDriver的核心组件、工作原理以及如何通过代码示例进行基本的网页自动化操作。我们将通过实践来揭示Selenium WebDriver如何在提高测试效率的同时,保证软件产品的质量标准。
17 0

热门文章

最新文章