一个做测试的摄影师
- 在网课上学习 自动化测试,分享一下学习笔记,大家一起学习,大家督促督促我哦,有点懒……
- 第一次在CSDN上写文章,希望和大家一起进步,有啥事评论留言哦
Appium 简介
espresso 是白盒测试框架, 通常是给开发人员用的,
monkey 是任意的在应用界面乱点乱划,适合压力测试
monkeyrunner 有点类似UIAutomator,但是 通常是固定的根据坐标点击
什么是appium?
➢appium是开源、跨平台、多语言支持的 移动应用(客户端)自动化工具.
➢通俗来说是手机app自动化工具
Appium可以测试的app类型
- 原生app(Android/ios):指从技术角度,所有控件由平台自身代码开发而成,例如ios由Objective-C开发,安卓由java、Kotlin(初探)开发,如手机自带的计算器
- 混合(Hybri)app(H5):混合app主要是指 它的一部分是原生界面和代码,而另一部分是内嵌web app,可以打开网页浏览的app都是 混合app。外壳是原生应用,内容是由网页组成,如支付宝、淘宝、美团
- 比如微信的sms界面是原生,原生代码实现的。
- 而打开某个朋友圈,或者别人发来的的链接部分则是 web部分,内嵌了一个浏览器内核,由浏览器内核实现的。
- 移动web app:即手机网页,如淘宝商家活动发短信带的链接,这种应用的客户端在手机上浏览器上展示,是B/S的。web app 只能运行在浏览器里,靠浏览器解释执行。资源一般都在网络上,它其实就是一个触屏版的网站。
3的架构是B/S,1、2是C/S
自带:是系统自带,可以是不同类型
使用Appium的被测APP运行平台
- iOS (就是苹果手机、平板、甚至iWatch等移动设备上运行的app)
- Android(就是安卓手机、平板、等移动设备上运行的app)
- Windows (就是Widnows手机、平板等移动设备上运行的app,但是这种平台使用人数目前太少,少到基本可以忽略不计了,)
- FirefoxOS (更少,更加可以忽略不计了)
Tips:IS0应用自动化,需要在mac系统上运行app iumserver,没有mac不能进行ios自动化,苹果是闭环的
测试对象App运行环境:
真实设备:苹果安卓的手机、平板等移动设备
模拟器:则是通过在PC或者Mac电脑上的软件虚拟的 苹果安卓的手机、平板等移动设备。 主要是方便我们测试用的。
测试程序语言:
appium支持多种程序语言开发测试程序,基本上Selenium支持的开发语言,appium都支持。
如:Python、java、Ruby、js、php、c#
测试程序运行平台:
appium支持测试程序运行在多种平台上:Windows、Linux、Mac OS
Appium自动化原理
Appium架构图
整体分为以下几个部分
- **客户端(Customer)C端:**可以看作为 测试脚本
- **服务端(Appium Server)S端:**测试脚本 主要是和Appium Server进行通信,对于手机控件元件的操作,将这些api转化成的指令发送给Appium Server,Appium Server再做进一步的处理来操作手机应用;
- **测试平台SDK:**Appium Server和手机应用间的交互以测试平台SDK为媒介;SDK种类很多,在电脑上下载对应平台的SDK才能控制手机应用;例如安卓平台有安卓平台的SDK,SDK可以理解为开发包,SDK包含了adb、元素定位工具等用于传达指令
- 手机端自动化驱动程序: SDK只能传达指令,手机端需要安装相应的驱动程序,有驱动程后,Appium Server直接和驱动进行通讯
手机端驱动程序介绍
- 苹果
iOS 9.3 and above: Apple’ s: XCUITest
iOS 9.3 and lower: Apple’ s :UIAutomation - 安卓
Android 4.2+: Google’ s:UiAutomator