appium简介
课程目的
可以使用Appium开发移动APP自动测试脚本,提高测试工作效率
面试时候能够回答关于移动应用测试自动化和Appium相关的问题
appium是什么?有什么用?
appium是一个开源的、跨平台(测试程序跨平台、支持多平台上的app测试)、多语言支持的(开发语言)移动应用自动化工具
测试对象
Appium的测试对象包括:原生app,混合app,移动web app;
所谓原生app,就是专门针对某一类移动设备而生的,所有界面和代码都是专门为平台设计的。比如说手机自带的计算器
混合app,指它的一部分是原生界面和代码,而另一部分是内嵌web app。比如微信、支付宝、开发者头条
微信消息界面、设置界面是原生代码实现的,打开某个朋友圈或者打开别人发来的链接则是web部分,内嵌一个浏览器内核,有浏览器内核实现的
web app,完全是用手机浏览器打开的一个网址,就是一个触屏版的网站,例如微信小程序
测试对象app运行平台
appium的测试对象运行平台包括 ios、Android、windows(windows手机、平板等移动设备上运行的app,目前使用人数少)
测试对象App运行环境:
真实设备
模拟器
测试程序语言支持
appium支持多种车需语言开发测试程序,基本上selenium支持的开发语言,appium都支持,比如:python、java、ruby、js
appiumserver本身是js开发的也是跨平台的,但是因为对苹果设备的自动化,appium比较依赖苹果的自动化框架,只能运行在苹果机器上
自动化实现原理
被测试app,运行在真实设备或者模拟器中,这个测试系统运行起来,关系是这样的:
测试程序(test script),告诉appium server,要做什么操作。比如,要去点击界面的一个元素。
怎么告诉appium server呢?他们之间有http的连接,通过http请求发送命令给appium server,AS接收到测试程序的命令后,在发出命令给设备商运行的控制程序,控制程序调用响应自动化库里面的方法去执行界面的控制。
底层自动化工具
安卓是uiautomator
IOS10,苹果完全去掉了以前的UIautomator的技术支持,所以现在,我们要进行苹果app的自动化,只能使用XCUITest