Appium原理

Appium原理小结

Api接口调用selenium的接口,android底层用android的instrumentation(API2.3+ 通过绑定另外一个独立的selendroid项目来实现的)、uiautomator接口(API4.2+),ios底层用ios的 uiautomation接口。

Client/ServerArchitecture

Appium server是用node.js写的,安装node.js可以直接用npm命令或dmg,server端功能:监听一个端口,接收client发送来的 command,翻译这些命令,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完command后把执行结果返回给 appium server,appium再把执行结果返回给client。

Client其实就是发起command的设备,一般来说就是执行代码的机器,执行appium测试代码的机器,可以把client理解成代码,这些代码可以是java、python、ruby、js,只要实现了webdriver标准协议就可以。

跨语言:只要支持selenium webdriver api和这种语言相关的client libraries就可以。Server放在任意机器上,哪怕是云服务器都可以(appium和webdriver天生适合云测试)。

Session

session就是一个会话,在webdriver/appium,你的所有工作永远都是在session start后才可以进行的。一般来说,通过POST /session这个URL,然后传入Desired Capabilities就可以开启session了。

开启session后,会返回一个全局唯一的sessionid,以后几乎所有的请求都必须带上这个session id,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。

进一步思考一下,由于session id是全局唯一,那么在同一台机器上启动多个session就变成了可能,这也就是selenium gird所依赖的具体理论根据。

Desired Capabilities

Desired Capabilities携带了一些配置信息。从本质上讲,这个东东是key-value形式的对象。你可以理解成是java里的map,python里 的字典,ruby里的hash以及js里的json对象。实际上Desired Capabilities在传输时就是json对象。

Desired Capabilities最重要的作用是告诉server本次测试的上下文。这次是要进行浏览器测试还是移动端测试?如果是移动端测试的话是测试 android还是ios,如果测试android的话那么我们要测试哪个app? server的这些疑问Desired Capabilities都必须给予解答,否则server不买账,自然就无法完成移动app或者是浏览器的启动。

Appium Clients

原生的webdriver api是为web端设计的,appium官方提供了一套appium client,为不同的语言的开发者可以测试自己的app,测试的时候,一般要使用这些client库去替换原生的webdriver库。算是client对原生webdriver进行了一些移动端的扩展。

时间: 2024-11-05 22:46:39

Appium原理的相关文章

【金阳光测试】Android自动化 -- 学习历程:Appium原理初步

章节:自动化基础篇——Appium原理初步(第七讲) 金阳光测试官网: http://www.goldensunshine.cc/forum.php?mod=viewthread&tid=19&extra=page%3D2 本期关键词: Appium.跨语言跨平台.Bootstrap 主要讲解内容及笔记: 一.what is appium 一种封装了uiautomator.或者其他测试框架的自动化测试框架,跨平台(支持linux.mac.windows).跨语言(几乎所有的我知道的语言都支

Appium原理及版本变化细节

Appium原理小结 Api接口调用selenium的接口,Android底层用android的instrumentation(API2.3+ 通过绑定另外一个独立的selendroid项目来实现的).uiautomator接口(API4.2+),iOS底层用ios的uiautomation接口. Client/ServerArchitecture Appium server是用Node.js写的,安装node.js可以直接用npm命令或dmg,server端功能:监听一个端口,接收client

APP端自动化 之 Appium原理

手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们所常见的传统App开发模式,云端数据存储+App应用客户端.App应用客户端,包含了所有的UI元素.框架逻辑等.只有数据存储在云端. 混合App(Hybrid App) 混合App就是HTML5 App,混合App通常由两部分组成,HTML5云网站+App应用客户端,这里的App应用客户端实际只是个架子,里面的UI元素和逻辑,都是存储在云端的,每

Appium自动化测试学习笔记 —— Appium原理

Appium简介 开源.跨平台.多语言支持的移动应用自动化工具 可测对象 原生应用APP.混合应用APP.移动Web App APP运行环境:真机.模拟器 测试对象App运行平台 IOS.Android(目前这两种是市场主流):Windows.FirefoxOS. 测试程序运行平台支持 Windows.Linux.Mac OS; 注:IOS应用appium server必须运行在Mac OS系统上,如 MacBook.imac: 支持的测试语言 python.Java.ruby.php.js.C

appium原理及api

appium 测试移动端UI自动化 appium 哲学 移动端自动化测试而单独开发一套api接口 appium是基于selenium做的二次扩展 android uiautomator IOS uiautomation/XCUitest android appium初始化参数: 1.appPackage 包名 2.appActivity 入口 3.deviceName 手机名(通过adb devices获取) 4.platformName 操作系统 5.platformVersion 版本 6.

Appium简介及原理

1.Appium简介 Appium是一个开源.跨平台的,适用于原生或混合移动应用(hybrid mobile apps)的自动化测试平台.Appium使用WebDriver(JSON wire protocol)驱动安卓和iOS移动应用.Appium的设计哲学是不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api,也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了.另外Appium可以把server放在任意机器上,哪怕是云服务器都可以,所以Appium和We

昨天晚上在公司内部分享了《Appium自动化》

分享的内容有: Appium原理 Appium环境搭建 ADB常用命令 常用的元素定位方法 Unittest框架 刚开始时有一点点紧张,慢慢地就不紧张了,讲解还算是比较有逻辑的,语音及语速也控制得不错.这个给自己一个大大的赞. 这是这1个月的努力,完全从门外汉慢慢摸索的结晶.不知道公司会不会继续做这个自动化,但是不管做不做吧,自己的学习还是要继续深入的,好不容易入门了,不能中途放弃. 还是希望自己时刻都保持着一颗不断学习的心,继续努力吧 原文地址:https://www.cnblogs.com/

Appium简介和初步使用520-1

移动互联网架构简化图 Appium的优势 * 多种开发模式支持 native hybrid webview * 多平台支持 android ios * 跨语言 java python ruby nodejs php * 支持跨app,可以在多个app之间交互 * 不依赖源代码,可以测试第三方应用 Appium原理 待补 Appium Desktop(包括Appium Server和Inspector) 点击??(Start Inspector Session),启动Inspector * aut

appium 自动化测试框架详读(一)

appium框架使用的过程记录,开始使用markdown来语法来编写,不知道博客园是否会支持markdown语法 ***1. appium原理* appium启动时,创建一个http://127.0.0.1:4723/wd/hub服务端服务端和设备默认使用4724端口进行通信* 底层调用UIautoamator工具* 服务端给设备一个bootstrap.jar * 启动包后会在手机上创建socket服务,暴露4723端口* 服务端收到也就是appium收到脚本传递命令,通过电脑4724端口想设备