- appium服务端是一个Node.js应用,跑在电脑上用于和软件上的bootstrap进行通信。既然要通信,一定是有一套通信协议。
- Appium 采用的是WebDriver协议。
- Appium支持多种测试语言的根本原因在于,WebDriver协议为各种主流语言提供了一个第三方库,能够方便把测试脚本转化成符合WebDriver规则的URL。
- Appium提供各个语言的第三方库,将测试脚本转化为WedDriver协议下的URL,通过Node服务发送到各个平台上的代理工具。
- session是一个会话,在webdriver/appium,你的所有工作永远都是在session start后才可以进行的,一般,通过 POST / sessionURL,传入Desired Capabilities就可以开启session了。开启session后,会返回一个全局唯一的session id,以后几乎所有的请求都必须带上这个session id。
- 苹果的UI自动化测试框架,在Xcode7以前使用UI Automation框架,Xcode7中苹果提供了新的框架UI Testing,在Xcode 8中干脆直接移除了对UI Automation的支持。
- iOS真机器会装一个名为WebDriverAgentRunner的应用,它能根据被测试应用的BundleID将被测试软件打开。
- session在网络应用中,称为“会话控制”。session对象存储特定用户会话所需的属性及配置信息。COOKIE和SESSION有什么区别? ( session 是一个抽象概念,开发者为了实现中断和继续等操作,将 user agent 和 server 之间一对一的交互,抽象为“会话”)
- session对象存储特定用户会话所需的属性及配置信息,对应到这里其实就是desired Capabilities中的配置信息参数。
Appium流程
image.png
session理解
image.png
参考文档:
https://blog.csdn.net/jffhy2017/article/details/69220719
https://www.jianshu.com/p/b663fade1f7e
等