39 | selenium基础架构,UI测试架构

2023-09-22 10:03:41

什么是测试基础架构?

        测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容:

  •         执行测试的机器;测试用例代码仓库;
  •         发起测试执行的 Jenkins Job;
  •         统一的测试执行平台;
  •         测试用例执行过程中依赖的测试服务,比如提供测试数据的统一测试数据平台、提供测试全局配置的配置服务、生成测试报告的服务等;

Selenium Grid

        目前最常用也是主流的测试分布式执行架构。

        Selenium Hub 用来管理各个 Selenium Node 的注册信息和状态信息,并且接收远程客户端代码的测试调用请求,并把请求命令转发给符合要求的 Selenium Node 执行。GUI测试用例放到Hub

基于 Docker 的 Selenium Grid 的搭建方法

#创建了Docker的网络grid
$ docker network create grid

#以Docker容器的方式启动Selenium Hub,并且对外暴露了4444端口
$ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.14.0-europium

#以Docker容器的方式启动并挂载了Chrome的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-europium

#以Docker容器的方式启动并挂载了Firefox的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.14.0-europium

基于 Docker 实现的 Selenium Grid 的测试基础架构

可降低维护node成本

引入统一测试执行平台的测试基础架构

可进行测试用例的版本化管理和提供基于Restful API 的测试执行接口供 CI/CD 使用。

基于 Jenkins 集群的测试基础架构

解决的问题:随着测试需求的继续增长,单个 Jenkins 成了整个测试基础架构的瓶颈节点。来自于统一测试执行平台的大量测试请求,会在 Jenkins 上排队等待执行,而后端真正执行测试用例的 Selenium Grid 中很多 Node 处于空闲状态。

测试负载自适应的测试基础架构

        通过单位时间内的测试用例数量,以及期望执行完所有测试的时间,来动态计算得到所需的 Node 类型和数量,然后再基于 Docker 容器快速添加新的 Node 到 Selenium Grid 中;而空闲时段则去监控哪些 Node 在指定时间长短内没有被使用,并动态地回收这些 Node 以释放系统资源。

集群自动扩容的其他方案

使用K8S

更多推荐

OPTEE Ftrace函数跟踪

安全之安全(security²)博客目录导读OPTEE调试技术汇总目录一、序言二、Ftrace配置三、Ftrace使用四、Ftrace典型输出一、序言本节描述如何使用ftrace为TA生成函数调用图。该名称来自具有类似目的的Linux框架,但是OP-TEEftrace非常具体。调用图记录了对函数的所有调用,并包含计时信

带你一步实现《栈》(括号匹配问题)

栈的结构及概念栈是一种特殊的线性表,只允许在固定的一端插入或删除数据,进行插入和删除的一端被称为栈顶,另一端称为栈底。栈中的数据遵循后进先出原则LIFO(LASTINFIRSTOUT)俗称栈的插入过程叫做压栈,入栈,从栈顶入数据出栈就是栈的删除,出数据也在栈顶哦,不然怎么做到后进先出原则。来看一个动态图理解入栈出栈的过

Socks5代理与IP代理:网络安全与爬虫中的应用

在当今数字化时代,网络安全和数据获取变得愈发重要。代理服务器作为一种关键的技术手段,为网络工程师和爬虫开发人员提供了有力的工具。本文将深入探讨Socks5代理和IP代理,分析它们在网络安全和爬虫应用中的角色与意义。1.代理服务器简介代理服务器是一台充当中间人的服务器,它在客户端与目标服务器之间传递网络请求。代理服务器在

Vue3 ~

变动实例constapp=newVue({})Vue.use()Vue.mixin()Vue.component()Vue.directive()constapp=Vue.createApp({})app.use()app.mixin()app.component()app.directive()createApp代替

分布式/微服务---第七篇

系列文章目录文章目录系列文章目录一、zk和eureka的区别二、SpringCloud和Dubbo的区别一、zk和eureka的区别zk:CP设计(强一致性),目标是一个分布式的协调系统,用于进行资源的统一管理。当节点crash后,需要进行leader的选举,在这个期间内,zk服务是不可用的。eureka:AP设计(高

最小二乘法

最小二乘法(LeastSquaresMethod)是一种用于拟合数学模型或估计模型参数的数学和统计方法。它的主要目标是找到模型参数的估计值,以使模型预测的值与观测数据之间的平方差尽量小。最小二乘法通常用于处理回归分析和曲线拟合问题。最小二乘法的基本思想是将观测数据视为模型的样本,并尝试找到模型参数,使得模型的预测值与实

Crazy Excel:Excel中的泥石流

CrazyExcel又名:疯狂Excel。是一款PC端的Excel软件工具,该软件支持windows,macos等主流操作系统。正如其名,作者在设计之初就加入了一些疯狂的设计,目的是创作出更加好用有效的excel工具。不管是专业还是小白,都能够轻松使用,解决用户在使用excel中的一些痛点,接下来我们将详细介绍Craz

三维模型3DTile格式轻量化压缩必要性分析

三维模型3DTile格式轻量化压缩必要性分析理解3DTile格式轻量化压缩的必要性,首先需要理解三维模型的复杂性和数据量。三维模型通常包含大量的顶点、面片和纹理信息,这使得其数据量非常大,尤其对于大规模的三维地理空间数据,例如城市或地形模型,数据量可能高达数百GB甚至TB。而在很多实际应用场景中,如在线地图服务、移动设

IllusionDiffusion:OpenAI 推出的图像生成新工具

OpenAI近日发布了一款名为IllusionDiffusion的图像生成器,它利用了一种名为“幻觉扩散”的技术来生成逼真的图像。幻觉扩散是一种基于生成对抗网络(GAN)的技术,它通过不断地对原始图像进行修改来生成新的图像。在IllusionDiffusion中,原始图像被称为“幻觉”,而新的图像被称为“扩散”。Ill

【腾讯云】打造未来智能应用的基石:腾讯混元大模型

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技

Python数据分析的增强式AI库

迷途小书童读完需要4分钟速读仅需2分钟1引言近年来,随着数据集的不断增大和复杂性的提高,数据分析变得越来越具有挑战性。在Python中,Pandas一直是处理和分析结构化数据的首选库。然而,随着人工智能的发展,我们需要一种能够轻松应对这些挑战的工具。幸运的是,PandasAI应运而生,它将Pandas的强大功能与人工智

热文推荐