每天进步一点点,关注我们哦,每天分享测试技术文章
码同学抖音 :小码哥聊软件测试
Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动iOS,Android和Windows应用程序。
Appium的优势是可以跨平台同时支持Android、iOS,并且支持多种语言,java、python、php、Ruby等等
官 地址是http://appium.io/,
中文文档地址是http://navo.top/uYBbAv
首先我们来说一下版本大于1.13的appium的工作过程。
1.appium是C/S模式,分为appium-server和appium-client两部分,appium-server里面有appium的核心工具,命令行工具,appium-client内嵌了 Appium Server 和 Inspector 的综合工具
免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦
2.appium是基于webdriver协议,WebDriver(也叫「Selenium WebDriver」)规定了一个客户
端-服务器协议(称为JSON Wire Protocol),按照这种客户端-服务器架构,可以使用自己熟悉的语言(比如python)编写的客户端向服务器发送适当的HTTP请求。
3. 第一次连接会建立一个session会话,并通过post请求发送一个json告知服务端相关测试信息
4. 对于Android来说,4.3+,使用系统自带的自动化框架,谷歌的UiAutomator/UiAutomator2
5. Appium服务端是node.js编写的HTTP服务器,将现有的优秀的框架进行了集成
Android 工作原理
1、Appium启动的时候,会创建一个
http\127.0.0.1:4723wdhub服务端(中转站)
2、4723端口接收client(也就是测试脚本)发来的请求,解析对应的请求
3、appium server启动UiAutomator2服务,然后把两个apk安装到手机上,一个
io.appium.uiautomator2.server.apk,一个
io.appium.uiautomator2.server.test.apk,这两个apk封装了UiAutomator2的服务和一些指令,然后通过netty服务,可以操作手机,比如进行点击,输入,滑动等操作。
4、执行的结果由netty server返回给appium server,appium server再把结果返回给client。
在Appium <= 1.13.x以前,默认的引擎用的是UiAutomator1,之后用的都是UiAutomator2,如果想用UiAutomator1代替UiAutomator2,可以加一个参数
automationName=UiAutomator1
小贴士:
我们都知道appium只有在uiautomator2下可以实现对toast的识别,那是因为Google新增了AccessibilityService服务,重写该服务可以实现对Notification和Toast内容的捕捉。
了解了对应的工作原理,我们就可以更好的去做移动端自动化,遇到问题的时候,我们也可以尝试去修改源码,知其所以然,做事才可以事半功倍。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!