Appium基础 — APPium自动化测试框架介绍
2023-09-14 09:11:07 时间
我们前面说的Android环境搭建和adb命令都是为移动端自动化测试环境搭建做准备的。
1、主流的移动端⾃动化⼯具
(1)Robotium
- ⽀持语⾔:Java
- 仅⽀持Android系统
- 不⽀持跨应⽤
(2)Macaca
- ⽀持语⾔:Java,Python,Node.js
- ⽀持Android和iOS系统
- ⽀持跨应⽤
(3)Appium
- ⽀持语⾔:Java,C#,Python,php,perl,ruby,Node.js
- ⽀持Android和iOS系统
- ⽀持跨应⽤
2、⾃动化测试⼯具选择的关注点
- 是否⽀持native,webview。
- 是否⽀持获取toast。
- 是否⽀持跨应⽤。
说明
(1)native
:表示APP原生页面。
- 使用Android/IOS支持的语言编写页面。
Android是Java语言。
IOS 是Object-C语言。 - 优点:页面打开速度快。
- 缺点:更新复杂。
当你修改了原生页面,需要重新发布的话,就需要重新发布到应用市场上,无论app修改了什么,哪怕是一点点原生页面,都需要重新发布。需要应用市场平台审核,审核需要一定时间。
在用户方面,更新需要用户升级或重新下载app。
(2)webview
:简单理解就是app中的H5页面。
- 使用前端技术编写的页面。
- 优点:更新方便。
进行修改,不需要重新发布应用市场,webview
页面在我们自己的服务端就可以自行更新。 - 缺点:打开速度慢,需要加载页面的很多元素,如js,css等。
(3)toast
:就是页面中的一个标签。
toast
的样子
比如我在Android虚拟机中打开文件管理器,点击返回按钮会有一行提示“再次点击即可退出。”,如下图:
这个样式的提示就叫toast
。
toast
并不是弹窗,在页面中弹窗你不操作的话会一直存在,而toast
默认时间就自动消失了。
补充
- 我们现在大部分的app页面,都是由
native
页面和webview
页面混合组成的,既有原生页面,也有H5页面。 - 在app中区分原生页面还是H5页面的基础办法(不一定准确),打开原生页面是没有进度条的,打开H5的页面是有进度条的。
3、APPium简介
- 官⽹:www.appium.io,由SauceLab公司开发。
- Appium是由
nodejs
的express
框架写的Http Server
,Appium使⽤WebDriver
的json wire
协议(该协议可支持多语言),来驱动Apple系统的UIAutomation
库、Android系统的UIAutomator
框架。
Appium对IOS系统的支持得益于Dan Cuellar’s
对于IOS自动化的研究。
Appium也集成了Selendroid,来支持老android版本。 - Appium支持Selenium WebDriver支持的所有语言,如
Java
、Object-C
、JavaScript
、Php
、Python
、Ruby
、C#
、Clojure
,或者Perl
语言,更可以使用Selenium WebDriver
的API。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。 - Appium 是一个自动化测试开源、跨平台工具。它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试套件间代码的复用性。
支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。
所谓的“移动原生应用”是指那些用 iOS 或者 Android SDK 编写的应用。
所谓的“移动 web 应用”是指使用移动浏览器访问的应用(Appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。
所谓的“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。
比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。 - Appium使用的供应商提供的框架:
IOS 9.3及以上:苹果的XCUITest
IOS 9.3及更低版本:苹果的UIAutomation
Android 4.2+:谷歌的UiAutomator/UiAutomator 2
Android 2.3+:谷歌的Instrumentation(Instrumentation由单独的项目Selendroid提供支持)
Windows:微软的WinAppDriver
最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了
1、学习思路和方法
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习
2、想学习却无从下手,该如何学习?
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....
4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看
最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦
相关文章
- Spartan-6开发案例使用手册——嵌入式AD模块/接口基础测试(上)
- Spartan-6开发案例使用手册——嵌入式AD模块/接口基础测试(下)
- 阿常:自动化测试杂谈
- web安全详解(渗透测试基础)[通俗易懂]
- 渗透测试|分享一下目前学习的cs远控教程
- 渗透测试基础 - - - 内网环境分析
- 渗透测试基础- - -windows网络安全常用dos命令
- 【测试开发】python系列教程: 基础语法
- 内网渗透测试基础
- 移动端APP自动化测试框架-UiAutomator2基础
- 1.零基础如何学习Web安全渗透测试?[通俗易懂]
- 训练集和测试集的分布差距太大有好的处理方法吗?
- Python自动化测试Selenium+chrome连接HTTP代理(账密+白名单)
- Spring基础(十七):Spring日志框架和测试支持
- 授权的一次测试记录
- 让智能手机也可以完成Kali Linux渗透测试(手机kalilinux)
- Linux下网络连通性测试:精准命令行检测(linux网络测试命令)
- LINUX中测试网络命令的使用指南(linux测试网络命令)
- 渗透测试之DNS侦查——DNS查询工具nslookup
- 知识测试Linux知识,每个人都需要掌握!(测试需要掌握的linux)
- MySQL 并发测试:从容处理高并发访问(mysql测试并发)
- 测试解锁Redis重新开启智能数据库之旅(测试启动redis)
- 2016年MySQL面试题解析及技能测试(2016mysql面试题)
- Oracle事务处理的测试及其重要性(oracle事物测试)
- 测试JavaScript字符串处理性能的代码