appium简介
appium是一个移动端自动化框架,它采用C/S的设计模式,支持多类开发语言(java python js c#…)、支持多平台(ios android),支持跨平台使用(windows linux)。它适用于原生或混合移动应用;
appium继承了webDriver协议(也就是selenium 2),在其基础上做了扩展,使用JSON wire protocol协议驱动安卓和ios移动应用;
appium工作原理(安卓为例)
首先需要了解,appium不同的版本默认使用的不同的执行引擎
目前最新的版本是UIAutomator2(谷歌官方sdk提供的自动化工具)
appium就是将UIAutomator底层工具集成进来,通过一系列手段完成自动化测试
Appium1.13版本以后
脚本中调用apppium api 如何和appium-server通信?
脚本中调用了appium的某个API(比如findElementById),本质发送http请求到appium-server【基于WebDriver协议,通过Json Wire Protocol协议以json形式发送请求信息给appium server端】,appium服务始终监听客户端(脚本)请求,完整流程如下:
【再此过程中,脚本充当客户端,appium-server充当服务端】
前提:启动appum服务 ,可以看到如下图,其实是appium启动了一个http接口,默认端口号是4723
这里appium-server启动后会对外暴露了一个服务接口地址:http:127.0.0.1:4723/wd/hub,那么只需要我们的脚本按照该接口的规范,就可完成调用;
详细流程
- 首先创建启动AppiumDriver【想要通过Appium来执行我们的自动化脚本,首先我们需要实例化AppiumDriver】