appium工作原理分析

appium优点:

跨架构,native hybrid webview

跨设备,android iosfirefoxos

跨语言,java python ruby nodejsphp

app, 可以在多个app之间交互

不依赖源代码

不限制测试框架和平台

 

 

执行思路分析:

首先得启动模拟器(或者真机) 然后启动appium-deskstop 服务。

然后使用脚本语言连接appium和python(借助appium-python-client) 将命令发给appium服务器,服务器接收指令传送命令给指定的模拟器(或真机),执行命令操作。

 

Tip:指定机器,就必须包含capabilities所需要的必要字段信息。

 

 

appium工作原理分析:

appium是基于webdriver协议添加对移动设备自动化api扩展而成的,所以具有和webdriver一样特性

webdriver是基于HTTP协议,第一链接会建立session会话,并通过post发送一个json告知服务器相关测试信息

 

5

 

 

 

剖析:

BootstrapAppium运行在安卓目标测试机器上的一个UiAutomator测试脚本,该脚本的唯一一个所做的事情是在目标机器开启一个socket服务器来把一个sessionAppiumPC端过来的命令发送给UiAutomator来执行处理。

它会监听4724端口获得命令然后passUiAutomator来做处理。

Bootstrapappium中扮演的角色:

首先,Bootstrapuiautomator的测试脚本,它的入口类bootstrap继承于UiautomatorTestCase,所以Uiautomator可以正常运行它,它也可以正常使用uiautomator的方法,这个就是appium的命令可以转换成uiautomator命令的关键;

其次,bootstrap是一个socket服务器,专门监听4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理;

最后,bootstrap处理的是从pc端过来的命令

uiautomator 会将Bootstrap.jar导入在移动设备中,这个jar包含了各种自动化命令解析。

Capabilities

Capabilities是由客户端发送给Appium服务器端的用来告诉服务器去启动哪种我们想要的会话的一套键值对集合。当中也有一些键值对是用来在自动化的过程中修改服务器端的行为方式。

 

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

服务端和设备如何通讯?

服务端和设备默认使用4724端口进行通讯的,底层调用uiautomator工具,在测试的时候服务端会给设备扔一个jar包就是appiumbootstrap.jar,会启动这个包,启动之后会在手机上创建一个socket服务,暴露的就是4724的端口;相对于socket服务来说,appium服务端又是一个客户端;

服务端的4724可以修改,设备上的不可以;服务端收到脚本传递过来的命令之后,通过电脑上的4724端口,想设备上的4724端口发送指令,appiumbootstrap.jar收到指令后回去完成点击,滑动其他的操作,完成之后再通过服务给服务端一个相应。服务端收到之后再去相应脚本

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值