appium工作原理

Appium工作过程

1、appium是C/S模式的,分为appium-server和appium-client;

2、appium是基于webdriver协议,添加了对移动设备自动化api的扩展,所以具有和webdriver一样的特性,比如多语言支持;

3、webdriver是基于http协议的,第一次连接会建立一个session回话,并通过post请求发送一个json告知服务端相关测试信息;

4、对于Android来说,4.2以后是基于UiAutomator框架实现查找注入事件的

5、appium服务端是node.js编写的HTTP服务器,将现有的优秀的框架进⾏了集成

 

Android 工作原理

1、Appium启动的时候,会创建一个http\\127.0.0.1:4723\wd\hub服务端(中转站)

2、4723端口接收client(也就是测试脚本)发来的请求,解析对应的请求

3、appium server把对应的请求发给bootstrap.jar,它是用java写的,安装在手机上的,在手机上监听4724端口,最终调用UiAutomator命令来实现操作

4、执行的结果由bootstrap返回给appium server  ,appium server再把结果返回给client

之前,Appium通过appium-android-bootstrap实现与UIAutomator v1的交互

现在大部分都使用UiAutomator2 ,针对Google推出的 UIAutomator V2,UiAutomator2修复了v1中遇到的大多数问题,最重要的是实现了与Android系统更新的分离

ps. 我们都知道appium只有在uiautomator2下可以实现对toast的识别,那是因为Google新增了AccessibilityService服务,重写该服务可以实现对Notification和Toast内容的捕捉

uiautomator2原理:

automationName设置为uiautomator2,appium会调用appium-uiautomator2-driver,同时将uiautomator2 server的两个apk安装到测试设备上,

  1. io.appium.uiautomator2.server.apk,执行handlers
  2. io.appium.uiautomator2.server.test.apk,只有一个test,用于启动server

 

 

AppiumServlet ,管理请求的路由,将driver发过来的请求转发给对应Handler.

Handler,调用UiAutomator V2去执行指定操作,操作的结果经AppiumResponse统一封装

AppiumResponse,操作结果返回给appium-uiautomator2-driver,再将结果返给客户端

 

IOS工作原理

appium IOS封装了Apple的Instruments框架,主要用了Instrument里面的UI Automation,然后在设备中注入bootstrap.js进行监听

1、appium 启动server(监听4723端口),用于和脚本通信,

2、收到请求后,server调用instruments.js启动一个socket server,同事分离出一个子进程运行instruments.app,讲bootstrap.js注入device,用于和外界交互

3、bootstrap.js把执行的结果返回给appium server

Appium从1.6.0 开始支持XCUItest框架, 

XCUITest是IOS官方维护的一个自动化测试框架,在iOS 10/xcode8 苹果完全去掉了以前的 UIAutomation 的技术支持,所以现在,要进行IOS的app自动化,只能使用XCUITest。

appium使用的模块是appium-xcuitest-driver,其中引用的Facebook提供的WDA方案来驱动iOS的测试,WDA编译应用在真机中必须配置development team和provisioning profile

 

 

 

了解了对应的工作原理,在写自动化的时候,遇到了问题,我们可以尝试去修改对应的源码

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值