『与善仁』Appium基础 — 14、Appium测试环境搭建
2021-11-28 11:38
721 查看
[toc]
1、Appium测试环境搭建整体思路
(1)Android测试环境搭建
Android测试环境需要搭建三个环境,Java,AndroidSDK,Android模拟器。 为什么要安装这三个环境?
- Java:Android的应用程序层使用的语言是Java,所以需要使用Java环境。
- AndroidSDK:Android SDK给你提供开发、测试所必须的Android API类库。
- Android模拟器:实际上就是一台手机,方便我们给大家展示效果。
(2)Appium测试环境搭建
Appium测试环境需要搭建:
- Appium Server:
是Appium的核心,提供了一组REST API的Web服务器。
Appium收到客户端的连接、监控命令,之后在移动设备上执行这些命令,最后把执行结果放在HTTP响应中返回给客户端。
可以通过
Node.js
安装,也可以通过Appium Desktop启动Appium Server服务。 - Appium Clients:
Appium官方提供了一套
Appium client
,涵盖多种语言Ruby/Java/Python
等, 在测试的时候,一般要使用这些client库去替换原生的webdriver库。 让我们可以更方便的写出可读性更好的测试用例。 - Devices: 就是我们的移动设备,可以是真实的手机,或者是电脑上的Android模拟器。 (Android模拟器我们在上一步就完成了)
(3)测试脚本语言的环境搭建
例如:Pyhton、Java等开发环境。
要使用Pyhton语言写我们的测试脚本,就搭建Python语言的开发环境,包括开发工具。
要使用Java语言写我们的测试脚本,就搭建Java语言的开发环境,包括开发工具。
2、Appium在Android端和IOS端的工作流程
(1)Android端
在Android端,Appium基于WebDriver协议,利用
Bootstrap.jar,最后通过调⽤用
UiAutomator的命令,实现App的自动化测试。
UiAutomator测试框架是
Android SDK自带的App UI自动化测试Java库。
另外由于
UiAutomator对H5的支持有限,Appium引入了
chromedriver以及
safaridriver等来实现基于H5的自动化。
Appium 在Android端工作流:
- client端也就是我们
test script
(webdriver测试脚本)。 - 中间是起动的Appium的服务,Appium在服务端起了一个Server(4723端口),跟Selenium Webdriver测试框架类似, Appium支持标准的
WebDriver JSON Wire Protocol
。 在这里提供它提供了一套REST的接口,Appium Server接收webdriver client标准rest请求,解析请求内容,调用对应的框架响应操作。 - Appium Server会把请求转发给中间件
Bootstrap.jar
,它是用Java写的,安装在手机上的Bootstrap监听4724端口并接收Appium的命令,最终通过调⽤用UiAutomator
的命令来实现。 - 最后
Bootstrap
将执行的结果返回给Appium Server。 - Appium Server再将结果返回给Appium Client。
(2)iOS端
在iOS端,Appium同样使用WebDriver的一套协议。
与Android端测试框架不同的是,Appium iOS封装了Apple的
Instruments框架,主要用了
Instrument里的
UI Automation(Apple的自动化测试框架),然后在设备中注入
bootstrap.js进行监听。
Appium 在iOS端工作流:
- Client端 依然是
test script
(webdriver测试脚本)。 - 中间是起动的是Appium的服务,Appium在服务端起了一个Server(4723端口),跟Selenium Webdriver测试框架类似,Appium支持标准的
WebDriver JSON Wire Protocol
。 在这里提供它提供了一套REST的接口,Appium Server接收webdriver client标准rest请求,解析请求内容,调用对应的框架响应操作。 - Appium Server调用
instruments.js
启动⼀一个socket server,同时分出一个子进程运行instruments.app
,将bootstrap.js
(一个UIAutomation
脚本)注入到device用于和外界进行交互 - 最后
Bootstrap.js
将执行的结果返回给Appium Server - Appium Server再将结果返回给 Appium Client。
(3)总结
所以我们可以看到Android与iOS区别在于Appium将请求转发到
bootstrap.js或者
bootstrap.jar。
然后由bootstrap驱动
UIAutomation和
UiAutomator去Devices上完成具体的动作。
如下图所示:
3、ADB执行原理和Appium执行原理
(1)ADB原理
ADB原理简易模型图 (跟着12345步骤走),如下图所示:
(2)ADB实际操作原理参考图
如下图所示:
(3)Appium原理
Appium简易原理图(跟着序号12345678走),如下图所示:
(4)Appium原理实际参考图( 结合简易原理图 )
如下图所示:
参考:
相关文章推荐
- 『与善仁』Appium基础 — 1、Android系统的测试环境搭建
- Windows下搭建appium+python的测试开发环境
- (一)python+appium移动端自动化测试环境搭建
- Appium - Android windows测试环境搭建
- Appium - Android windows测试环境搭建
- 用Jenkins自动化搭建测试环境_Jenkins基础
- Appium测试环境搭建实践
- mac下appium自动化测试安卓环境的搭建和运行测试
- Appium - Android windows测试环境搭建
- Appium - Android windows测试环境搭建
- Android环境搭建Appium测试框架 Python
- Appium测试环境搭建(Windows下)
- Appium -java - windows7 环境搭建 真机测试
- Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结
- 『心善渊』Selenium3.0基础 — 2、搭建Selenium测试框架环境
- appium测试android环境搭建(win7)
- [Android测试] Android Studio+Appium+Java+Windows 自动化测试之二:Appium环境安装搭建
- YOLO基础教程(一):Python环境搭建与测试
- 用Jenkins自动化搭建测试环境_基础之安装插件
- appium-iOS设备的自动化测试环境搭建