当前位置:网站首页>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原理实际参考图( 结合简易原理图 )
重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下
边栏推荐
- Control unit
- 2020ccpc Qinhuangdao J - Kingdom's power
- 智慧工地“水电能耗在线监测系统”
- 每日一题-无重复字符的最长子串
- Implement a fixed capacity stack
- Dynamic planning solution ideas and summary (30000 words)
- kubeadm系列-01-preflight究竟有多少check
- 2017 USP Try-outs C. Coprimes
- 7. Processing the input of multidimensional features
- Sword finger offer 58 - ii Rotate string left
猜你喜欢
Dynamic planning solution ideas and summary (30000 words)
Using HashMap to realize simple cache
Spark中groupByKey() 和 reduceByKey() 和combineByKey()
[practical skills] how to do a good job in technical training?
Time of process
【云原生】微服务之Feign自定义配置的记录
Sword finger offer 06 Print linked list from beginning to end
【Jailhouse 文章】Look Mum, no VM Exits
Light a light with stm32
CCPC Weihai 2021m eight hundred and ten thousand nine hundred and seventy-five
随机推荐
Reader writer model
Mysql database (I)
Smart construction site "hydropower energy consumption online monitoring system"
从Dijkstra的图灵奖演讲论科技创业者特点
Analysis of backdoor vulnerability in remote code execution penetration test / / phpstudy of national game title of national secondary vocational network security B module
对for(var i = 0;i < 5;i++) {setTimeout(() => console.log(i),1000)}的深入分析
A problem and solution of recording QT memory leakage
LeetCode 1200.最小绝对差
[cloud native] record of feign custom configuration of microservices
Little known skills of Task Manager
Sword finger offer 53 - ii Missing numbers from 0 to n-1
Binary search template
kubeadm系列-01-preflight究竟有多少check
QT判断界面当前点击的按钮和当前鼠标坐标
全排列的代码 (递归写法)
In this indifferent world, light crying
每日一题-无重复字符的最长子串
How many checks does kubedm series-01-preflight have
1996. number of weak characters in the game
Dynamic planning solution ideas and summary (30000 words)