可使用Appium开发移动APP自动测试脚本,提升测试工做效率java
面试时候可以回答关于移动应用测试自动化和Appium相关的问题python
appium是一个开源的、跨平台(测试程序跨平台、支持多平台上的app测试)、多语言支持的(开发语言)移动应用自动化工具ios
Appium的测试对象包括:原生app,混合app,移动web app;web
所谓原生app,就是专门针对某一类移动设备而生的,全部界面和代码都是专门为平台设计的。好比说手机自带的计算器面试
混合app,指它的一部分是原生界面和代码,而另外一部分是内嵌web app。好比微信、支付宝、开发者头条小程序
微信消息界面、设置界面是原生代码实现的,打开某个朋友圈或者打开别人发来的连接则是web部分,内嵌一个浏览器内核,有浏览器内核实现的windows
web app,彻底是用手机浏览器打开的一个网址,就是一个触屏版的网站,例如微信小程序微信小程序
appium的测试对象运行平台包括 ios、Android、windows(windows手机、平板等移动设备上运行的app,目前使用人数少)浏览器
真实设备ruby
模拟器
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