当前位置:网站首页>Appium自动化测试基础 — Appium测试环境搭建总结
Appium自动化测试基础 — Appium测试环境搭建总结
2022-07-05 05:50:00 【测试-八戒】
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原理实际参考图( 结合简易原理图 )

重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下


边栏推荐
- 过拟合与正则化
- 【实战技能】非技术背景经理的技术管理
- sync. Interpretation of mutex source code
- 2022 pole technology communication arm virtual hardware accelerates the development of Internet of things software
- 从Dijkstra的图灵奖演讲论科技创业者特点
- Using HashMap to realize simple cache
- One question per day 2047 Number of valid words in the sentence
- How to adjust bugs in general projects ----- take you through the whole process by hand
- Kubedm series-00-overview
- Sword finger offer 06 Print linked list from beginning to end
猜你喜欢

Light a light with stm32

Some common problems in the assessment of network engineers: WLAN, BGP, switch

游戏商城毕业设计

Codeforces round 712 (Div. 2) d. 3-coloring (construction)

SAP method of modifying system table data

Wazuh開源主機安全解决方案的簡介與使用體驗

LeetCode 0108.将有序数组转换为二叉搜索树 - 数组中值为根,中值左右分别为左右子树

wordpress切换页面,域名变回了IP地址

YOLOv5-Shufflenetv2

【云原生】微服务之Feign自定义配置的记录
随机推荐
CF1634 F. Fibonacci Additions
LaMDA 不可能觉醒吗?
1.14 - 流水线
Codeforces round 712 (Div. 2) d. 3-coloring (construction)
Solution to game 10 of the personal field
2020ccpc Qinhuangdao J - Kingdom's power
EOJ 2021.10 E. XOR tree
Educational Codeforces Round 116 (Rated for Div. 2) E. Arena
Smart construction site "hydropower energy consumption online monitoring system"
kubeadm系列-00-overview
Time of process
Introduction and experience of wazuh open source host security solution
卷积神经网络简介
QT判断界面当前点击的按钮和当前鼠标坐标
用STM32点个灯
2022 pole technology communication arm virtual hardware accelerates the development of Internet of things software
leetcode-556:下一个更大元素 III
[jailhouse article] look mum, no VM exits
lxml. etree. XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
AtCoder Grand Contest 013 E - Placing Squares