我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Selenium和Appium有哪些异同点

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Selenium和Appium有哪些异同点

这篇文章给大家分享的是有关Selenium和Appium有哪些异同点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前段时间学习了selenium的使用,今天开始接触appium看到appium的原理后产生了疑惑:

现在的selenium是通过webdriver来操作驱动浏览器的,然而appium有一个server的概念

那么为什么没有app driver这个东西呢?

selenium

早期的selenium

早期的selenium主要是指selenium1.0的版本,

这个版本主要由Selenium IDE + Selenium Grid + SeleniumRC组成

seleniumRC就是后来被webdriver取代的一个代理server

RC == Remote Control 远程控制

早期Selenium 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行,JavasScript可以获取并调用页面的任何元素,Selenium启动一个Server,将操作Web元素的API调用转化为一段段JavaScript,在Selenium内核启动浏览器之后注入这段JS

缺点:但是JS注入速度不理想,稳定性大大依赖于Selenium内核对API翻译成的JS质量高低

引入代理Remote Control Server是因为“同源策略”的限制,通过这个代理服务器来“欺骗”远程Server,达到使其以为是从同一个地方load代码以正确返回请求数据的效果

seleniumRC的原理

Selenium RC Server 启动一个浏览器(或是已经使用中),并注入js代码

将测试脚本代码传到客户端的 Selenium-Core 中

Selenium-Core 翻译并解析执行用户录制的操作

让代理 Server 进行通讯

Remote Control Server 负责跟远程 Web 应用服务器进行通讯

seleniumRC的组成

Selenium Server(Launcher、Http Proxy、Selenium Core)

Client Libraries(用来控制server)

seleniumRC的工作流程

测试用例通过Client Libraries的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接

Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面中,并发浏览器的代理设置为Selenium Server的Http Proxy。

测试用例通过Client Libraries的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作

Selenium Core接收到指令后,执行操作

浏览器收到新的页面请求信息,于是发送Http请求,请求新的web页面。Selenium Server会接收到所有由它启动的浏览器发动的请求

Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的web页面

Selenium Server的Http Proxy把接收的Web页面返回给浏览器

现在的selenium

selenium3.0以后移除了seleniumRC,取而代之的是webdriver

用一张图来展示selenium3.0的运行原理

Selenium和Appium有哪些异同点

这里讲到的是测试脚本和浏览器的交互,客户端开始运行驱动浏览器的脚本的时候,这时浏览器收到请求开始启动并开启侦听端口,并自动创建session,保持浏览器和对应客户端的会话连接,然后客户端运行脚本,向浏览器发送http请求,浏览器解析请求,根据脚本内容做出相应操作,返回response。这时客户端根据response选择结束还是继续执行

tips:

webdriver操作浏览器、页面采用的协议:the webdriver wire protocol

Client和Server的通信协议:HTTP

HTTP传输的数据内容为遵循WP协议json格式数据

浏览器驱动实现了webdriver协议的api

appium

appium和selenium之间的不同

appium本身就是一个server,而selenium废弃了server,用webdriver来驱动浏览器

appium工作原理

当开启appium服务器的同时就开启了监听端口;我们运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求,请求内容就是根据webdriver wire protocol协议规定的一条JSON格式的数据;Appium Server端接收到请求后,解析出JSON数据并发送到手机端;手机端上已经由BootStrap.jar(iOS为BootStrip.js)开启的socket服务器监听相应的端口,BootStrap.jar在appium每个session第一次访问手机端的时候会自动安装;手机端接收到对应的请求后,通过BootStrap.jar翻译成UIAutomator能执行的命令,然后通过UIAutomator处理并操作APP完成测试。

appium的几个概念

appium/appium server

一般所说的appium其实是一个基于node.js的web服务器,它是测试脚本和设备端交互的桥梁

用npm install -g appium 安装的是命令行的没有界面的appium server

appium GUI

它是把没有界面的appium server封装出了一个图形界面,方便操作,但是现在已经被appium desktop所取代

appium Desktop

它是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供appium server的强大功能

appium client

第1点中说到,appium其实是一个sweb server,server是接收请求来操作设备端的app的,既然有了server那么一定会有client

这个client就是我们写测试脚本时导入的包

Python中可以运行 pip install Appium-Python-Client 来安装

Android和 iOS

Selenium和Appium有哪些异同点

Selenium和Appium有哪些异同点

感谢各位的阅读!关于“Selenium和Appium有哪些异同点”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Selenium和Appium有哪些异同点

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Selenium和Appium有哪些异同点

这篇文章给大家分享的是有关Selenium和Appium有哪些异同点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前段时间学习了selenium的使用,今天开始接触appium看到appium的原理后产生了疑惑:
2023-06-05

kafka同步发送和异步发送有哪些异同点

Kafka的同步发送和异步发送方式有以下异同点:异同点:发送方式:同步发送和异步发送都是通过KafkaProducer发送消息到Kafka集群。阻塞:同步发送是阻塞的,即发送消息后会一直等待直到收到服务器的响应,因此发送消息的速度取决于
2023-10-27

python列表和元组的异同点有哪些

Python列表和元组都是序列类型的数据结构,可以存储多个元素。相同点:1. 都可以通过索引访问元素,可以使用切片操作对序列进行切片。2. 都支持迭代操作,可以使用for循环来遍历元素。3. 支持相同的运算符操作,如加法运算符可以用于连接两
2023-10-12

Kotlin与Java的异同点有哪些

这篇文章主要介绍“Kotlin与Java的异同点有哪些”,在日常操作中,相信很多人在Kotlin与Java的异同点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Kotlin与Java的异同点有哪些”的疑
2023-06-02

Jmeter与LoadRunner的异同点有哪些

本篇内容主要讲解“Jmeter与LoadRunner的异同点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jmeter与LoadRunner的异同点有哪些”吧!关键特征:1、支持HTTP/
2023-06-04

java过滤器和拦截器有哪些异同点

这篇“java过滤器和拦截器有哪些异同点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java过滤器和拦截器有哪些异同点”文
2023-06-27

Appium框架的知识点有哪些

本篇内容主要讲解“Appium框架的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Appium框架的知识点有哪些”吧!1、测试对象Appium是一个开源工具,用于自动化iOS、And
2023-06-05

Shell字符串间有哪些异同点

这篇文章主要介绍“Shell字符串间有哪些异同点”,在日常操作中,相信很多人在Shell字符串间有哪些异同点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell字符串间有哪些异同点”的疑惑有所帮助!接下来
2023-06-09

php7和php5有哪些不同点

这篇文章给大家分享的是有关php7和php5有哪些不同点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、php标量类型和返回类型声明#主要分为两种模式,强制性模式和严格模式declare(strict_type
2023-06-15

Web加速器与CDN有哪些异同点

Web加速器和CDN(内容分发网络)都是用来优化网页加载速度和提高用户体验的工具,但它们有一些不同之处:功能范围:Web加速器的主要功能是通过压缩、缓存、负载均衡等技术来优化网页加载速度,提高网站性能。而CDN不仅可以加速网页加载速度,还可
Web加速器与CDN有哪些异同点
2024-04-26

Kafka和其他消息队列系统有哪些异同点

Kafka和其他消息队列系统的异同点主要体现在以下几个方面:数据存储方式:Kafka使用磁盘存储消息数据,而其他消息队列系统如RabbitMQ、ActiveMQ等通常使用内存存储消息数据。这使得Kafka能够支持更大规模的数据量和更长时间的
Kafka和其他消息队列系统有哪些异同点
2024-03-14

云服务器和虚拟主机的异同点有哪些

云服务器和虚拟主机都是基于虚拟化技术实现的互联网应用服务,但在以下方面存在不同:1.资源隔离:云服务器采用硬件虚拟化,每个虚拟机拥有独立的系统内核和硬件资源,资源隔离性更好;而虚拟主机则采用软件虚拟化,多个用户共享同一台物理服务器的资源。2
2023-06-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录