Selenium的四种部署方式

关于selenium 的部署,我在网上找了很多,基本上都没有提到或是说的比较清晰的。当时我一直有个困惑:测试的脚本代码,是放在跟浏览器同一台机器上呢,还是放在Application Server上?

在官方开发文档中,提到了四种部署方式:

一、本地部署

说明:脚本代码跟测试的浏览器同一台机器

【WebDriver】 相当于 依赖包,以下代码为例

<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.X</version></dependency>

【Driver】是下载下来的exe可执行程序(以window系统来说),测试不同的浏览器时,需要不同的exe可执行程序

【Browser】是目标测试浏览器

此部署方式最简单,把测试脚本放在目标浏览器同一台机器上,然后执行测试脚本即可。

 

在第6行代码中,直接启动本地(指代码与浏览器Drvier.exe同一台机器)的chromedriver.exe,然后就是跑脚本了。

简单总结: 优点:容易上手,快速见效,容易对selenium 有大概认识; 缺点:只能作为新手练习用,不能作为建设自动化测试系统的方案,因为不管对每台浏览器管理啊。

二、远程部署

执行的测试脚本与目标浏览器不在同一台机器上。

【RemoteWebDriver】简单来说就提供了一套API接口,允许WebDriver访问RemoteWebDriver 此部署方式分两部分,一边是客户端,一边是服务端。可以把测试脚本与目标浏览器分开在不同的机器上。 服务端是指【RemoteWebDriver】这边,启动时,RemoteWebDriver可以看作为Tomcat容器启动一个WEB应用,暴露了监听端口,并发布RESTFUL接口。

 

注意:服务器的地址如下:http://你的host地址:4444/wd/hub/,记录,后面编写客户端代码的时候需要使用。

客户端是指【WebDriver】这边,是应用程序跑测试脚本的(Java\Python\JavaScript等),通过RESTFUL接口把测试参数化传给RemoteWebDriver。

在第17行代码中,需要把定IP和端口。

图片RemoteWebDriver.png和代码源于:https://www.cnblogs.com/hejing-swust/articles/8052969.html

简单总结: 优点:此部署方式,可以用于一般的企业自动化测试方案,实现测试脚本和执行机(目标浏览器)分离,可以自己实现远程管理多个执行机。 缺点:比本地部署稍稍麻烦些。

三、Grid部署

集中管理,由selenium grid 来统一分以任务。

 

【Grid】官方描述:Selenium Grid is a smart proxy server that allows Selenium tests to route commands to remote web browser instances. Its aim is to provide an easy way to run tests in parallel on multiple machines ,简单来说就是由Grid智能的分发任务到各个执行机

下图"components of grid.png" 这里分三部分,一是client,二是HUB,三是NODES。 【client】就是上文中描述过的 client ,不再重复; 【HUB】相当于一个中控,类似于“二、远程部署”那章的中的“server服务端”,client 端将脚本通过HTTP接口传给HUB,至于由哪个执行机(目标浏览器)执行,那就由HUB去计算了。 【NODES】就是HUB的节点,全由HUB监听和管理;

启动HUB很简单,注意下文的命令是 "-role hub",启动后可以通过浏览器访问控制台 http://localhost:4444/grid/console。

  java -jar selenium-server-standalone.jar -role hub

启动NODES也简单,注意下文的命令是“-role node”, 而 -hub http:localhost:4444 是HUB的IP 和端口。 一台机会可以同时启动多个NODES

  java -jar selenium-server-standalone.jar -role node -hub http://localhost:4444

HUB 和 NODES 更多的配置就参考官网Setting up your own Grid

而client 如何访问HUB呢?

 DesiredCapabilities capability = new DesiredCapabilities();capability.setBrowserName("ie");capability.setPlatform(Platform.WINDOWS);try {WebDriver  driver = new RemoteWebDriver(new URL("http://192.168.0.245:4444/wd/hub"), capability);driver.get("http://www.baidu.com");driver.quit();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}

四、Test Framework

它是这么说的,我就不翻译了:Natural language frameworks/tools such as Cucumber may exist as part of that Test Framework box in the figure above, or they may wrap the Test Framework entirely in their own implementation. 对于Test Framework。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蛋糕购物商城

蛋糕购物商城 运行前附加数据库.mdf&#xff08;或使用sql生成数据库&#xff09; 登陆账号&#xff1a;admin 密码&#xff1a;123456 修改专辑价格时去掉&#xffe5;以及上传专辑图片 c#_asp.net 蛋糕购物商城 网上商城 三层架构 在线购物网站&#xff0c;电子商务系统 …

Kubernetes中文件挂载的四种方式

一. Kubernetes入门 1.1 Kubernetes创建POD过程 1.2. Kubernetes基本操作 命令说明用法create创建kubectl create -f xx.yamledit编辑kubectl edit svc [POD的service名称]get获取kubectl get pod --namespaceXXXpatch更新kubectl patch -f xx.yamldelete删除kubectl delete …

AWTK 开源串口屏开发(17) - 通过 MODBUS 访问数组数据

在 AWTK 串口屏中&#xff0c;内置了 MODBUS Client Channel 的模型&#xff0c;不用编写代码即可实现在 ListView 中显示数组数据。 MODBUS 协议一次只能读取 125 个 WORD&#xff0c;AWTK-MODBUS Client Channel 支持长数据&#xff0c;自动分成多个请求访问。 1. 功能 不用…

【后端】Thymeleaf模板引擎学习笔记

文章目录 1. java体系模板引擎介绍2. 使用2.1 初步使用2.2. 引用静态资源模板2.3 引用静态资源模板(配置资源路径和后缀)2.4 整合springboot 视频地址 1. java体系模板引擎介绍 FreeMarkerThymeleafVelocity 2. 使用 2.1 初步使用 引入依赖 <dependency><groupId>…

C++学习随笔(11)——vector

本章我们来学习一下vector&#xff01; 目录 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5 vector 迭代器失效问题。 1.vector的介绍及使用 1…

selenium 自动化测试课上实操指南2——乐视tv搜索

如果完成了实操1的同学&#xff0c;环境搭建已经ok&#xff0c;环境还没有好的同学请参考 实操1_百度搜索 为了大家顺利&#xff0c;我们还想按照实操1那样&#xff0c;先导入一个基本项目。在次基础上进行代码编写、 我们一起写写看。 1.打开乐视视频网页并最大化 如下图所…

三款数据可视化工具深度解析:Tableau、ECharts与山海鲸可视化

在数字化时代&#xff0c;数据可视化工具成为了企业和个人进行数据分析和决策的重要助手。市面上众多数据可视化工具各具特色&#xff0c;本文将为您介绍三款热门的数据可视化工具&#xff0c;帮助您更好地理解和利用数据。 首先&#xff0c;让我们来认识Tableau。Tableau是一款…

matlab学习006-使用matlab绘出系统的冲激响应和阶跃响应波形并求其冲激响应的数值解

目录 题目 1&#xff0c;绘出系统的冲激响应和阶跃响应波形 1&#xff09;基础 2&#xff09;效果 3&#xff09;代码 2&#xff0c;求出t0.5s,1s,1.5s,2s时系统冲激响应的数值解。 1&#xff09;基础 2&#xff09;效果 ​☀ 3&#xff09;代码 题目 已知描述某连续系…

《苍穹外卖》Day07部分知识点记录

一、菜品缓存 减少查询数据库的次数&#xff0c;优化性能 客户端&#xff1a; package com.sky.controller.user;import com.sky.constant.StatusConstant; import com.sky.entity.Dish; import com.sky.result.Result; import com.sky.service.DishService; import com.sky…

网络安全实训Day16

网络空间安全实训-渗透测试 漏洞扫描 定义 扫描和探测目标范围内的主机存在哪些安全漏洞&#xff0c;或扫描目标范围内的那些主机存在某个指定的漏洞 漏扫工具 AWVS APPScan MSF 使用MSF扫描漏洞并利用 1.搜索需要的攻击模块 search ms17-010 2.使用攻击模块 use 模块名称…

苏州相融大厦安装部署火眼视频图像早期火灾报警系统

2024年3月&#xff0c;苏州高铁数金公司、火眼消防技术有限公司与招商积余物业联合在相融大厦进行了火眼视频图像早期火灾报警系统的部署和测试工作&#xff0c;测试效果良好。体现招商积余对持续推进消防安全工作的高度重视。 相融大厦是火眼消防总部注册和苏州研发中心所在地…

OpenCV直方图计算

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV实现直方图均衡 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 cv::split 将图像划分…

网络安全实训Day24(End)

写在前面 并没有完整上完四个星期&#xff0c;老师已经趁着清明节假期的东风跑掉了。可以很明显地看出这次持续了“四个星期”实训的知识体系并不完整&#xff0c;内容也只能算是一次基础的“复习”。更多的内容还是靠自己继续自学吧。 网络空间安全实训-渗透测试 文件包含攻击…

用 C 语言进行大模型推理:探索 llama2.c 仓库(一)

文章目录 前提有关huggingface社区chinese-baby-llama2llama2.cexport.py读取模型信息重建模型对重建出的模型初始化权重导出run.c要求的.bin文件 tokenizer.py 一些思考参考链接 前提 最近发现了一个只用c语言就可以推理大模型的仓库llama2.c&#xff0c;作者是openAI的员工。…

把私有数据接入 LLMs:应用程序轻松集成 | 开源日报 No.236

run-llama/llama_index Stars: 29.9k License: MIT llama_index 是用于 LLM 应用程序的数据框架。 该项目解决了如何最佳地利用私有数据增强 LLMs&#xff0c;并提供以下工具&#xff1a; 提供数据连接器&#xff0c;以摄取现有的数据源和各种格式&#xff08;API、PDF、文档…

vite加密打包插件(vite-plugin-javascript-obfuscator)选项(option)详解

本文主要介绍vite加密打包插件(vite-plugin-javascript-obfuscator)选项(option)。 目录 一、选项(option)1. compact2. config3. controlFlowFlattening4. controlFlowFlatteningThreshold5. deadCodeInjection6. deadCodeInjectionThreshold7. debugProtection8.debugProtect…

【每日刷题】Day23

【每日刷题】Day23 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 2. 链表的回文结构_牛客题霸_牛客网 …

MySQL从入门到高级 --- 2.DDL基本操作

文章目录 第二章&#xff1a;2.基本操作 - DDL2.1 数据库的常用操作创建数据库选择要操作的数据库删除数据库修改数据库编码 2.2 表结构的常用操作创建表格式查看当前数据库的所有表名称查看指定某个表的创建语句查看表结构删除表 2.3 修改表结构添加列修改列名和类型删除列修改…

python之excel加工处理小案例一则

一、工具用途 工作中&#xff0c;需要对各类excel进行加工处理&#xff0c;当表和字段比较多时&#xff0c;关联条件又有多个&#xff0c;每次通过execl的vlookup之类的关联公式手工可以解决工作需求&#xff0c;但一般耗时较长&#xff0c;且人工统计匹配也存在出错的情况。 …