Appium使用教程
一、Appium测试对象
Appium 的测试对象包括:原生 app,混合 app,移动 web app(就是用手机浏览器打开的网址)
二、Appium介绍
Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用
1、使用Appium进行自动化测试有两个好处
Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用
Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架.Appium实现了真正的跨平台自动化测试
2、Appium架构
Appium 是一个用Node.js编写的HTTP server,它创建、并管理多个 WebDriver sessions 来和不同平台交互,如 iOS ,Android等
Appium 开始一个测试后,就会在被测设备(手机)上启动一个 server ,监听来自 Appium server的指令. 每种平台像 iOS 和Android都有不同的运行、和交互方式。所以Appium会用某个桩程序“侵入”该平台,并接受指令,来完成测试用例的运行
三、Appium环境搭建(Android)
1、需要准备
-
jdk
-
android SDK
-
appium
-
nodejs
-
appium lib
选择Python版本的Lib: Appium-Python-Client-0.22.tar.gz
由于Appium依赖于Selemium,所以还要下载 Selemium Lib: selenium-2.53.2.tar.gzhttps://pypi.python.org/pypi/selenium
- python
2、安装、配置
将上述软件依次安装
- 安装JDK, 配置环境变量
- 安装Android SDK, 配置环境变量
- 安装Appium-Windows-Desktop
- 安装Appium-Python-Client
- 安装模拟器
四、Appium的实现原理和自动化原理
1、实现步骤过程
- 调用Android adb完成基本的系统操作
- 向Android上部署bootstrap.jar
- bootstrap.jar Forward Android的端口到PC机器上
- PC上监听端口接收请求,使用webdriver协议
- 分析命令并通过forward 端口发给bootstrap.jar
- bootstrap.jar接收请求并把命令发给uiautomator
- ui automator执行命令
2、自动化原理
Test script:
这是我们的测试程序,是测试逻辑的实现部分
Appium Server:
这是一个 JavaScript 代码实现的程序。是运行在 Node.js 里面的
被测试 app:
运行在真实设备或者模拟器中
这个测试系统运行起来交互关系:测试程序(Test scrip),告诉 Appium Server 做什么操作。之间有 http 的连接,通过 http 请求发送命令给 Appium Server ,Appium Server 接收到测试程序的命令后,再发出命令给设备上运行的控制程序,控制程序调用相应自动化库里面的方法去执行界面的控制
五、Appium的andorid基本架构介绍
1、常见布局视图
线性布局: LinerLayout
相对布局: RelativeLayout
帧布局: FrameLayout, 叠放
普通视图: View
切换视图: ListView, 注意, 其中的元素会动态变化
HierarchyViewer, uiautomatorviewer
2、基本控件
TextView: 文本
Button: 按钮
EditText: 输入框
ImageView: 图片
其他: Alert(警告框)/Toast(提示消息)/SeekBar(滑块)/Webview(嵌入网页)
3、控件常见属性
index: 索引, 用于排序
text: 控件名称(显示文本)
resource-id: 资源id
class: 控件类型(文本/按钮/输入框等)
content-desc: 控件描述
package: 所属包(一个包就是一个apk)
enabled: 是否可用
clickable: 是否可点击
focused: 是否聚焦状态
bounds: 坐标
六、Adb命令基础(之前有写过一篇关于adb的文章)
博客地址 : https://blog.csdn.net/HONGTester/article/details/107693115?spm=1001.2014.3001.5501
1、Adb介绍
Adb(Android Debug Bridge): Andoid设备调试桥梁, 可以再PC端通过命令调试Android设备, 如获取设备状态, 安装/卸载app, 上传/下载文件等操作
2、Adb常用命令
2.1 开启/关闭服务
adb start-server: 开启服务
adb kill-server: 关闭服务
2.2 连接设备/获取连接状态(自动开启服务)
adb connect/disconnect 设备名或uuid: 连接/断开连接设备
adb devices: 查看连接的设备
2.3 安装/卸载app
adb install 安装包路径.apk
adb uninstall apk包名
通过uiautomatorviewer可以获取获取apk包名
2.4 上传/下载文件
上传: adb push 本地文件 设备目录
下载: adb pull 设备文件 本地目录
2.5 Copy
adb push 1.txt /sdcard/
adb pull sdcard/1.txt
2.6 adb shell: 可用于查看设备中的文件, exit退出
pm:
应用及权限管理 adb shell pm list packages
am:
Activity操作 adb shell am start -n 包名/包名.主Activity名
input:
模拟按键/输入
点击(触控)指定坐标:
adb shell input tap 50 250
输入文字:
adb shell input text hello
按键:
adb shell input keyevent 3
滑动:
adb shell input swipe 300 1000 300 500
logcat:
日志查看及过滤(问题定位)
monkey:
性能/稳定性测试
dumpsys:
性能分析
screencap:
截图 adb shell screencap -p /sdcard/01.png
screenrecord:
录屏 adb shell screenrecord --time-limit 10 /sdcard/demo.mp4