1、什么是Appium:
appium是一个移动端的自动化测试框架,可用于测试原生应用、移动网页应用、混合型应用,且可跨平台 ,并支持多种语言。
内容解释:
- 什么是原生应用(Native App):是在Android、IOS等移动平台上利用提供的开发语言、开发类库、开发工具进行App软件开发。
- 什么是移动网页应用(Web App):指网页内的应用,类似于基于浏览器访问淘宝、微博等应用。是用HTML5应用开发,是利用Web技术进行的App开发。Web技术本身需要浏览器的支持才能进行展示和用户交互,因此主要用到的技术是HTML5、Javascript、CSS等。
- 什么是混合型应用(Native App + Web App):利用原生与H5的开发技术的混合应用,原生代码部分利用Web View插件或者其它框架为H5提供容器,程序主要的业务实现、界面展示都是利用与H5相关的Web技术进行实现的。
- 什么是跨平台:针对不同平台(android、IOS),意思是可以针对不同的平台用一套api来编写测试脚本。
- 支持多种语言:支持多种语言,java、python、php、Ruby等等。
2、Appium各类组件:
- Appium Server:是Appium的服务端,一个web接口服务,使用node.js实现。
- Appium Desktop:是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能。
- Appium GUI:Appium GUI是Appium desktop的前身。 也就是把Appium server封装成了一个图形界面,降低了使用门槛。
- Appium Clients:Appium是一个C/S结构,客户端Appium Clients会给服务端Appium Server发送请求会话来执行自动化测试脚本任务。支持多语言,因此有多个版本类型,java版本 python版本等。
3、Appium理念:
Appium 旨在满足移动端自动化需求的理念,概述为以下四个原则:
- 不应该为了自动化而重新编译你的应用或以任何方式修改它。
- 不应该被限制在特定的语言或框架上来编写运行测试。
- 移动端自动化框架不应该在自动化接口方面重造轮子。
- 移动端自动化框架应该开源,在精神、实践以及名义上都该如此。
- (真牛逼!)
4、三张图了解 Appium工作原理:
-
appium 1.13版本之后的工作原理:
1、脚本将指令通过4723端口传给appium server服务端
2、appium server服务端通过8200端口映射,将指令传给手机端6790端口
3、6790端口通过netty server服务 启动uiautomator来执行处理去操作待测app -
appium 1.13版本之前工作原理:
1、脚本将指令通过4723端口传给appium server服务端
2、appium server服务端通过4724端口映射,将指令传给手机端4724端口
3、4724端口通过socket服务 启动uiautomator来执行处理去操作待测app -
appium 测试混合app 或者 h5:
1、脚本将指令通过4723端口传给appium server服务端
2、appium server服务端通过8200端口映射,将指令传给手机端安卓内置的一个 android system webview
3、android system webview 再去执行处理去操作待测app
想要了解工作原理,appium server日志不能不看!