Appium基础 — Appium测试环境搭建总结
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)测试脚本语言的环境搭建
例如:Pyhtonj、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。 -
Appiumserver再将结果返回给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原理实际参考图( 结合简易原理图 )
最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了
1、学习思路和方法
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习
2、想学习却无从下手,该如何学习?
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....
4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看
最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦
相关文章
- memcached完全剖析–1. memcached的基础
- java学习笔记15--多线程编程基础2
- Java实现 蓝桥杯VIP 基础练习 分解质因数
- 基于CoreText的基础排版引擎之不带图片的排版引擎
- 4-06python语法基础-内置模块-urllib模块,以及第三方模块requests的使用,cookie字典生成式,切url的末尾字符串
- 安卓逆向6,frida逆向框架介绍,基础开发hook java层,进阶开发hook native层,hook 加密类
- 数据库基础之PostgreSQL
- Atitit 小程序前端api艾提拉总结 索引 目录 1. 基础372 1.1. 系统38更新 38小程序 39调试 41定时器 422 2. 路由432 3. 界面442 3.1.
- 编程语言C#基础入门精华大总结
- 100天精通Python(数据分析篇)——第55天:Pandas之DataFrame对象基础大总结
- 100天精通Python(基础篇)——第28天:os模块基础大总结+代码实战
- Java核心知识点十万字最强总结(从基础到高级,Java的核心知识点的上篇,全部都是精华)
- Python基础语法和数据类型最全总结
- 云小课|DGC数据开发之基础入门篇
- JavaSE学习总结(二)——Java语言基础
- 基础总结篇之一:Activity生命周期
- 10 openEuler基础配置-设置kdump
- Appium自动化测试基础 — Appium测试环境搭建总结
- 数据结构与算法_24 _ 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树
- 计算机网络基础总结(超全)
- Java基础常见面试题总结
- python数学基础——单词统计
- ELK基础环境安装
- 14 verilog基础语法-语法总结2
- [ Azure | Az-900 ] 基础知识点总结(三) - Azure 管理和治理