Appium原理

来源:互联网 发布:go语言和java性能对比 编辑:程序博客网 时间:2024/06/10 17:29

Appium原理小结

Api接口调用selenium的接口;

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

ios底层用ios的uiautomation接口。


Client/ServerArchitecture

(1)Appium server是用node.js写的;

(2)Server端功能:监听一个端口,接收client发送来的command,翻译这些命令,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完command后把执行结果返回给appium server,appium再把执行结果返回给client。

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

(4)跨语言:只要支持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形式的对象。最重要的作用是告诉server本次测试的上下文。












0 0
原创粉丝点击