monkey与monkeyrunner不足之处:
- 元素定位依赖于坐标点,稳定性差
- 不支持跨平台使用(iOS平台无法使用)
- 没有成熟系统的管理框架
- 只适用于冒烟测试,检测app稳定性。
Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。
Appium优势
- 可以跨平台同时支持android、ios
- 支持多种语言,java、python、php、Ruby等等
- 不用为复杂的环境发愁
如果你有selenium经验,直接上手。
Appium架构原理
Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:
- Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。
- Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
- ·iOS:UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。
![27d2b55f47a145923b5a2959ba524a29.png](https://img-blog.csdnimg.cn/img_convert/27d2b55f47a145923b5a2959ba524a29.png)
运行原理
我们的电脑(client)上运行自动化测试脚本,调用的是webdriver的接口,appium server接收到我们client上发送过来的命令后他会将这些命令转换为UIautomator认识的命令,然后由UIautomator来在设备上执行自动化。
Appium的架构原理如上图所示,由客户端(Appium Client)和服务器(Appium Server)两部分组成,客户端与服务器端通过JSON Wire Protocol进行通信。