在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。
一、Appium介绍
1、Appium概念
Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS,Android和Windows应用程序。
2、Appium特点
Appium是开源的移动端自动化测试框架;
Appium可以测试原生的、混合的、以及移动端的web项目;
Appium可以测试IOS,Android应用;
Appium是跨平台的,可以用在osx,windows以及linux桌面系统上;
Appium支持Ruby、Python、Java、JavaScript、Objective C、php等多种语言。
3、Appium理念
Appium 旨在满足移动端自动化需求的理念,概述为以下四个原则:
你不应该为了自动化而重新编译你的应用或以任何方式修改它。
你不应该被限制在特定的语言或框架上来编写运行测试。
移动端自动化框架不应该在自动化接口方面重造轮子。
移动端自动化框架应该开源,在精神、实践以及名义上都该如此。
4、Appium组件
Appium Server
Appium是一个C/S结构,包括Server和Client。Appium Server是Appium的服务端,作为一个Web接口服务,使用Node.js实现。
Appium Desktop
Appium Server的图像界面,可设置启动or停止服务器、查看日志,可使用inspect查看应用程序的元素。
Appium GUI
是Appium Desktop的前身,也是把Appium Server封装成一个图像界面。该产品的Windows版本在2015年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的Appium版本,而是1.4.16版本。如果要使用最新的桌面版需要使用Appium Desktop。
Appium Client
Appium Client作为客户端,会给服务端Appium Server端发送请求会话来执行自动化任务。类似使用浏览器访问网页,可使用不同的客户端浏览器(IE/Firefox/Chrome…)访问同一个网站,通过操作发送请求到服务器来获取数据。
二、Appium运行原理
Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:
Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。
Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
iOS:UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。