24
08

安装及配置Appium(一)

Appium是一个移动端的UI自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的,其官方网站为“http://appium.io”。可用于IOS和Android等移动操作系统。

本周分享《安装及配置Appium实验中的Appium概述,后期将分享更多内容。


Appium是一个移动端的UI自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的,其官方网站为“http://appium.io”。可用于IOS和Android等移动操作系统。


原生的应用是指用Android或iOS的SDK编写的应用,移动网页应用是指WebApp应用(H5应用)。混合应用是指一种包裹了webview控件的原生应用,具备Web页面的便捷与通用性,又具备原生应用的强大功能,也是目前使用频率比较高的应用类型。

另外,Appium是跨平台的,可以针对不同的平台用同一套API接口来编写测试用例。并且Appium是基于WebDriver规范的,支持Java或者Python等作为脚本语言来开发自动化测试脚本。


Appium的设计,遵循如下原则:


(1)使用自动化来测试一个App,但是不需要重新编译它。Appium是基于Android和iOS底层提供的自动化测试框架进行的二次封装。针对iOS来说,其封装的是iOS原生提供的框架UIAutomation,针对Android,则封装的是Android提供的原生测试框架UiAutomator。所以,即使我们不使用Appium,同样可以利用Android和iOS的原生测试框架完成自动化测试。但是正因为有了Appium的加持和二次封装,让我们在测试iOS和Android应用时,可以提供统一的一套接口和脚本,而不需要分别开发。


(2)写自动化测试脚本但,不需要学习特定的语言。Appium在设计之时便遵循了目前的Web自动化测试标准规范“WebDriver”,为什么要基于WebDriver呢来进行设计呢?WebDriver(也称Selenium WebDriver)其实是一个C/S架构的协议,叫做JSON Wire Protocol。通过这个协议,用任何语言写成的客户端都可以发送HTTP请求给服务器,所以我们只需要使用我们熟悉的编程语言就可以完成自动化测试脚本的开发。目前Appium官方主要支持Java,Python,Ruby,C#,PHP,JavaScript等编程语言,基本覆盖了主流的编程语言。


(3)一个自动化框架不需要重复造轮子。WebDriver目前已经成为事实上的Web自动化测试的标准规范。所以,Appium完全没有必要再去定义一套新的规范,所以读者在后续的学习和使用Appium的过程中,可以看到很多WebDriver的身影。同时,Appium除了提供WebDriver API之外,还额外增加了专门针对移动端操作的统一接口。


(4)一个自动化框架需要开源,在精神和实践上实现开源。对于这一点来说,是能够促进Appium在近几年快速发展的很重要的原因。


那么,Appium究竟是如何与手机端和测试脚本进行三方联动,进而达到测试的目的呢?在此我们必须要先理解一下Appium的架构体系和各主要功能模块。Appium的运行过程由三个模块构成:


(1)自动化测试脚本。用任意支持的编程语言调用Appium官方针对不同编程语言提供的不同SDK进行调用,来向Appium Server端发送符合WebDriver规范的HTTP请求,并在测试执行的过程中,通过Appium Server获取测试结果的响应,从而进行断言。


(2)Appium Server:Appium Server事实上是由Node.js的Express框架开发的一个HTTP Server,同遵守WebDriver规范,是Appium架构体系中最为核心的模块。Appium Server主要解决了测试脚本与移动端进行交互通信的过程,无论测试脚本用何种编程语言开发,只要遵守WebDriver规范即可。Appium Server在收到自动化测试脚本发送来的请求后,将其转换成移动端可以理解的自动化测试指令。并通过ADB和TCP与移动端进行通信,完成自动化测试指令的下达。


(3)移动端代理:为了实现Appium Server的指令能够成功地被移动端理解和执行,我们必须要在移动端安装Appium的代理程序。其中最为核心的通信程序是Bootstrap.jar程序(在iOS设置中叫Bootstrap.js)一切的Appium的指令均通过该代理程序进行处理。同时,在移动端Appium还会自动安装额外的两个应用程序:Appium Settings和Unlock,这两个应用程序是无界面的,但是我们可以通过应用程序调用来进行系统设置和屏幕解锁操作。


Appium整体架构图如下图所示。


20191018_112031_673.png



下周推送:安装及配置Appium




为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20190320_095757_834.jpg




版权所有,转载本站文章请注明出处:蜗牛学苑, https://www.woniuxy.cn/article/339