精华内容
下载资源
问答
  • Appium工作原理

    2019-09-17 10:22:12
    1.Appium简介 2.Appium与Selenium的区别 3.Appium支持多平台、多语言 4.Appium工作原理 4.1 整体工作原理 4.2 Appium在Android端的工作流程 4.3 Appium在IOS端的工作流程

    1.Appium简介

    appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。

    • “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。
    • “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。
    • “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

    重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。

    2.Appium与Selenium的区别

    appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

    appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

    appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。

    3.Appium支持多平台、多语言

    appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

    appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及Selenium(WebDriver)如何做到支持多语言的原因;

    appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量;

    语言 Github地址
    Ruby https://github.com/appium/ruby_lib
    Python https://github.com/appium/python-client
    Java https://github.com/appium/java-client
    JavaScript(Node.js) https://github.com/admc/wd
    Objective C https://github.com/appium/selenium-objective-c
    PHP https://github.com/appium/php-client
    C#(.NET) https://github.com/appium/appium-dotnet-driver
    RobotFramework https://github.com/jollychang/robotframework-appiumlibrary

    4.Appium工作原理

    4.1 整体工作原理

    在这里插入图片描述
    通过上面一张图简单展示了appium的工具原理。

    首先,appium支持多语言,因为它针对流的几种语言分别开发的相应的appium库。好处就是我们可以选择自己熟悉的语言编写appium脚本。

    其次,appium支持多平台,包括MAC和Windows。它针对这两大平台开发了appium-Server。

    最后,appium又同时支持Android 和 iOS两个操作系统。

    这就使得appium变得非常灵活。

    当我在MAC平台上,通过Python(python-client )编写了一个appium自动化脚本并执行,请求会首先到 appium.dum (MAC下的appium-Server),appium-Server通过解析,驱动iOS设备来执行appium自动化脚本。

    或者,我在Windows平台上,通过Java( java-client )编写了一个appium自动化脚本并执行,请求会首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通过解析,驱动Android虚拟机或真机来执行appium脚本。

    4.2 Appium在Android端的工作流程

    在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。
    UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。
    另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。

    工作流:

    1. client端也就是我们 test script是我们的webdriver测试脚本。
    2. 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
    3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现。
    4. 最后Bootstrap将执行的结果返回给appium server。
    5. appium server再将结果返回给 appium client。

    4.3 Appium在IOS端的工作流程

    在IOS端,appium同样使⽤WebDriver的一套协议。
    与Android端测试框架不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的⾃自动化测试框架),然后在设备中注入bootstrap.js进⾏行监听。

    工作流:

    1. client端 依然是 test script是我们的webdriver测试脚本。
    2. 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
    3. appium server调用instruments.js 启动⼀一个socket server,同时分出一个⼦子进程运⾏instruments.app,将bootstrap.js(一个UIAutomation脚本)注⼊入到device⽤于和外界进行交互
    4. 最后Bootstrap.js将执行的结果返回给appium server
    5. appium server再将结果返回给 appium client。

    注:
    本文一部分内容来自 http://www.testclass.net/appium ,该网站非常棒,是学习自动化测试的好去处。

    展开全文
  • appium工作原理

    2020-09-27 17:05:46
    appium工作原理 开发服务 : --ip + 端口 ​ IDE /Clent ——》API服务:ip+端口,生成session——》浏览器 ​ IDE /Clent ——》提前启动好API服务,4273,生成sesion;HUB()——》APP;uiatomator2-server 相同:都...

    appium工作原理

    开发服务 : --ip + 端口

    ​ IDE /Clent ——》API服务:ip+端口,生成session——》浏览器

    ​ IDE /Clent ——》提前启动好API服务,4273,生成sesion;HUB()——》APP;uiatomator2-server

    相同:都用的一个协议,都是c/s架构,核心技术是api

    不同:一个是客户端,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T5oP423a-1601197394043)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1596076828827.png)]

    ​ agent:代理。服务的意思

    ​ uiatomator2-server 底层是java,

    ​ IDE 是集成开发环境

    代码部分:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V6xzwpaI-1601197394050)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1596099484618.png)]

    find_element_by_android_uiautomator方法要单引号包双引号,因为内部是java在解析

    在模拟器中下载app,没有apk包的时候cmd查找包名和acitivity名。

    可以用adb shell dumpsys activity activities这个命令查在模拟器自带的应用市场下的软件的包名
    
    adb shell dumpsys window windows | findstr "Current"
    

    self.driver.swipe(start_x=229,start_y=700,end_x=242,end_y=200) #滑动app屏幕方法2

    与web的取元素的不同之处:

    2,end_y=200) #滑动app屏幕方法2

    与web的取元素的不同之处:

    app中找到的class和text 其他的难以找到

    展开全文
  • Appium 工作原理

    2019-09-30 16:19:53
    Appium - automation for mobile apps 一.Appium架构介绍 官网:www.appium.io 由SauceLab公司主持。并在Google的GATC2013会上被详细介绍。 Appium是由nodejs的express框架写的Http Server。Appium不是它⾃⼰...
    Appium - automation for mobile apps
     
    一.Appium架构介绍
    官网:www.appium.io
    由SauceLab公司主持。并在Google的GATC2013会上被详细介绍。
    Appium是由nodejs的express框架写的Http Server。Appium不是它⾃⼰创建⼀套新的测试框
    架,是将现有的优秀的框架进⾏了集成,以Selenium WebDriver的协议
    (JsonWireProtocol/Restful web service)统⼀起来. 使得这个框架满⾜多⽅⾯的需求。
    Appium启动⾃动化测试后,在被测设备上启动⼀个server,监听来⾃Appium server的指
    令。不同的平台(如IOS,Android)采⽤不同的运⾏和交换⽅式。Appium将某个桩程序
    “侵入”平台,用于接受指令,来完成测试脚本的运行。
    特性:
    1. 跨平台, native hybrid webview(H5) 
    2. 跨设备, android iOS 
    3. 跨app,可以在多个app之间交互
    4. 不依赖APP开源代码(保留意见。。,android Uiautomator对H5的支持需要代码支持,这里不细说) 
    5. 支持Selenium WebDriver / Selenium Grid 
    6. 跨语言, java python ruby nodejs 
    7. Open Source 
     
    二. Appium 在Android端的工作模式
    1.架构图
    Appium <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice
     
    简易图:
    Appium <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice


    在Android端,appium基于WebDriver,并利⽤用Bootstrap.js,最后通过调⽤用UiAutomator的命
    令,实现App的自动化测试。UiAutomator测试框架是Android SDK⾃自带的App UI自动化测
    试Java库。
    另外由于UiAutomator对H5的⽀支持有限,appium引入了chromedriver来实现基于H5的自动
    化。
    2.主要原理:
    1.左边的WebDriver script是我们的selenium测试脚本
    2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟selenium
    Webdriver测试框架类似,Appium⽀支持标准的WebDriver JSONWireProtocol 。在这里提供
    了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调⽤用对应的框
    架响应操作。
    如:脚本发送一个点击按钮的请求给appium server,
    3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.
    Bootstrap 接收appium 的命令(4724端口),最终通过调⽤用UiAutomator的命令来实现。
    4.最后执⾏行的结果由Bootstrap返回给appium server
    5.另外,appium还用到了chromedriver来⽀支持基于H5(webview)的测试。
     
    二. Appium 在IOS端的工作模式
     
    1.架构图:
    Appium <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice
    简易图:
    Appium <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice
    在IOS端,appium同样使⽤用WebDriver的⼀一套协议。与Android端测试框架不同的是,
    appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple
    的⾃自动化测试框架),然后在设备中注⼊入bootstrap.js进⾏行监听。
     
    2.主要原理
    1.左边的WebDriver script是selenium测试脚本
    2.中间是起的Appium的服务,Appium在这边起了⼀一个Server(4723端口),跟selenium
    Webdriver测试框架类似,Appium⽀支持标准的WebDriver JSONWireProtocol 。在这里提供
    了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调⽤用对应的框
    架响应操作。
    如:脚本发送一个点击按钮的请求给appium server,
    3. appium server调用instruments.js 启动⼀一个socket server,同时分出⼀一个⼦子进程运⾏行
    instruments.app,将bootstrap.js(一个UIAutomation脚本)注⼊入到device⽤用于和外界进⾏行交
    互。
    4.对于H5的操作,运⽤用了 iOS webkit debug proxy来实现
    http://appium.io/slate/en/v1.0.0/?java#ios-support
    https://github.com/google/ios-webkit-debug-proxy

    转载于:https://www.cnblogs.com/lisa2016/p/11283455.html

    展开全文
  • Appium工作原理简介

    2020-09-29 17:56:10
    Appium工作原理 一、Appium简介 Appium是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium驱动苹果的 UIAutomation 库和 Android 的 UiAutomator ...

    Appium工作原理

    一、Appium简介

    Appium是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。

    二、Appium优势

    1、跨平台、设备支持安卓、IOS支持原生、混合、移动web类型应用测试

    2、可以跨app,多个APP之间交互

    3、跨语言, java/python/ruby

    4、开源

    5、不依赖APP开源代码

    三、App类型简介

    native app是一个原生程序,运行在机器操作系统上,有很强的交互,一般静态资源都是在本地的。浏览使用方便,体验较好。在实现上要么使用Objecttive-c和cocoaTouch Framework撰写iOS程序,要么选择java+Android Framework撰写android应用程序。

    web app是浏览器里的应用,只能运行在浏览器上,不再是操作系统。资源一般都在网络上。与一般的网站相同。

    hybrid app是一个半原生程序,伪造了一个浏览器的apk/ipa原生程序,把地址写死了,然后里面运行了一个webapp。里面是WebView UI 。但是还是运行在机器的操作系统上,交互较弱,资源一般在本地或者网络都可以。浏览体验度没有原生的好。

    四、Appium原理

    • Appium工作过程

    1、使用java/python/ruby编写测试脚本(appium client)

    2、首先需要有一个Appium Server服务端口号为4723,Appium Server⽀持标准的WebDriver JSON Wire Protocol协议,它的作用就是用来解析测试脚本生成的请求。

    3、Appium Server服务将解析后的请求转发给设备上的中间件Bootstrap.jar或者instruments.js端口号是4724。

    4、Bootstrap.jar或者instruments.js接收到请求后调用相关的测试框架执行测试并将测试返回给Appium Server

    5、Appium Server又将结果返回给appium client。

    • Appium原理图

    欢迎大家关注我的订阅号,会定期分享一些关于测试相关的文章,有问题也欢迎一起讨论学习!订阅号每一条留言都会回复!

    展开全文
  • 移动测试Appium工作原理 介绍 Appium是一个开源工具,用于自动化iOS、Android设备和Windows桌面平台上的原生、移动Web和混合应用。 "原生应用"指那些用iOS、Android或者WindowsSDK编写的应用。 "移动web应用"是用...
  • Appium工作原理【转】

    2019-07-04 16:04:00
    一、Appium工作原理 二、Appium的加载过程 1)调用Android adb完成基本的系统操作 2)向Android上部署bootstrap.jar 3)Bootstrap.jar Forward Android的端口到PC机器上 4)Pc上监听端口接收请求,...
  • 1.appium工作原理 在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。 UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。 另外...
  • Appium工作原理大全

    2019-12-15 15:57:00
    一.Appium整体工作原理 web自动化selenium webdriver 是c/s模式,server端和client端是通过webdriver protocol实现的,而Appium是参考selenium开发的,采用也是webdriver 协议(该协议是基于http的),而底层封装...
  • 原作者写的很好,所以直接放在这里。 一、什么是Appium Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。...Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAut...
  • appium工作原理分析

    2018-11-07 15:32:06
    appium优点: 跨架构,native hybrid webview 跨设备,android iosfirefoxos 跨语言,java python ruby nodejsphp 跨app, 可以在多个app之间交互 不依赖源代码 不限制测试框架和平台     执行思路分析: ...
  • appium的工具原理 Appium-client》》》》Appium-server》》》》移动设备 ================================================================================================================================...
  • Appium原理 面试的时候,被问到appium原理,一点不会,实在尴尬。 大家可以直接翻看原作https://blog.csdn.net/jffhy2017/article/details/69220719 appium运行时安装的2个应用:Appium Settings和Unlock。 一...
  • 浅谈Appium工作原理

    2021-06-25 22:28:38
    一、 Appium简介 Appium是一个开源工具,可用于在iOS、Android和Windows上实现本机、移动网络和混合应用程序的UI自动化测试,使用WebDriver协议驱动iOS,Android和Windows应用程序。 二、 Appium特点 开源免费。 跨...
  • 1-appium工作原理

    2021-02-25 10:05:07
    2、Appium server检查配置信息是否符合要求 3、UI automator 和 adb 是SDK提供的  (UI automator用于元素定位,adb是安卓调试桥,用于连接设备) 4、利用adb工具检查当前连接的移动设备 5、首次运行脚本时,会安装...
  • Appium工作原理介绍

    2017-09-28 15:57:51
    webdriver 是基于 http协议的,第一连接会建立个 session 会话,并通过 post发送一个 json 告知服务端相关测试信息IOS 原理图( 来源于:百度 ) appium ios封装了 apple 的 Instruments I框架,主要用了 框架,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,397
精华内容 1,358
关键字:

appium工作原理