目录
- 1. 目前mobile自动化解决方案
- 1.1 iOS和Android 测试工具
- 1.2 自动化工具的选择
- 1.3 选择自动化工具的考虑因素
- 2. Appium介绍
- 2.1 Appium介绍
- 2.2 多架构支持
- 2.3 推荐Appium的理由
- 2.4. Appium框架介绍
- 2.4.1 Appium引擎列表
- 2.4.2 Appium设计理念
前言:
本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 😘
1. 目前mobile自动化解决方案
1.1 iOS和Android 测试工具
1.2 自动化工具的选择
工具名称 | 被测系统 | 测试 | 脚本语言 | 支持H5 | 跨应用 | 稳定性 | SDK自带M |
---|---|---|---|---|---|---|---|
Monkey Runner | Android | 功能 | Python | 支持 | 否 | 稳定 | 是 |
Instrumentation | Android(<4.1) | 功能 | Java | 支持 | 可以 | 稳定 | 否 |
Uiautomator2 | Android(>=4.1) | 功能 | Java | 支持 | 可以 | 稳定 | 是 |
Adb-For-Test | Android(>=4.1) | 功能 | Java/Python | 支持 | 可以 | 稳定 | 否 |
Monkey | Android | 稳定 | Java | 否 | 否 | 稳定 | 是 |
CTS | Android | 兼容 | Java | 支持 | 可以 | 稳定 | 否 |
Uiautomator | iOS | 功能 | JS | 支持 | 可以 | 稳定 | Xcode自带 |
Calabash | Android,iOS | 功能 | Ruby | 支持 | 可以 | 一般 | 否 |
Appium | Android,iOS | 功能 | Java/Python/JS/C/C#/Perl | 支持 | 可以 | 一般 | 否 |
1.3 选择自动化工具的考虑因素
- 单平台测试or多平台测试?
- 是否有多设备同时测试的场景?
- 不局限于测试环境,任何版本任何环境都可以测试?
- 最擅长那种开发语言?
- 当前市面是否有满足项目需求的测试工具?是否需要二次开发?
2. Appium介绍
2.1 Appium介绍
Appium是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用 和混合应用,且是跨平台的。可用于iOS和Android操作系统。
- 原生应用是指用android或iOS编写的应用。
- 移动网页应用是指网页应用,类似于ios中safari应用或 者Chrome应用或者类似浏览器的应用。
- 混合应用是指一种包裹webview的应用,原生应用网页内容交互性的应用。
重要的是Appium是跨平台的。何为跨平台,意思是可以针对不同平台用一套api来编写脚本。
2.2 多架构支持
- 原生应用:应用系统自带组件开发出来的,或是SDK组件开发出来的
- 移动网页应用:可通过浏览器打开的应用,存在与一个网页上,非app形式存在
- 混合应用:原生应用嵌套了网页,如微信小程序
2.3 推荐Appium的理由
- 跨语言:Java、Python、nodejs 等大部分主流语言
- 跨平台:Andoid、iOS、Windows、Mac
- 底层多引擎可切换
- 生态丰富,社区强大
2.4. Appium框架介绍
2.4.1 Appium引擎列表
2.4.2 Appium设计理念
- webdriver是基于http协议的,第一次连接会建立一个session会话,并通过post发送一个json告知服务端相关测试信息
- Client/Server设计模式:
- 客户端通过WebDriver json wire协议与服务端通讯
- 对语言支持
- Server可以放在任何地方
- 服务端NodeJS开发的Http服务
- Appium使用Appium-xcuitest-driver来测试iPhone设备,其中需要安装facebook出的WDA(webdriveragent)来驱动iOS测试
文末说明:
接口测试中我们很容易混淆Session、cookie和token,你知道他们有什么区别吗?
快来跟我一起看,一篇文章让你了解三者的区别。😎
⬇⬇⬇⬇⬇⬇⬇
👍👍👍:接口测试经典面试题:Session、cookie、token有什么区别?