Appium自动化测试学习笔记
Appium自动化测试学习笔记
1、Android系统基础
1.1Android系统简介
1.2Android App类型简介
1.3Android SDK简介、安装
安装在非中文目录中,启动安装目录中的Android SDKManager.exe
下载 安装必要工具和组件:Android SDk tools、Android SDK Prlatform tools、Android SDKBuild tools
Android SDK文件目录
add-ons
保存着附加库,第三方公司为Android平台开发的附加功能系统。
docs
android SDK API参考文档,在这些文档中所有的API都可以查找到
extras
platforms
每个平台的SDK真正的文件,存放不同的Android系统
samples
Android开发实例
环境变量的设置
Win10
右键计算机–选择属性–高级系统设置–环境变量(N)…–新建
变量名:ANDROID_HOME
变量值:D:\Android-SDK
Android SDK Prlatform tools
元素抓取工具:UI Automator
1.4Android模拟器的安装和使用
1.4.1逍遥模拟器Android SDK中的adb.exe和对应的库文件替换模拟器中的adb.exe和对应库文件,以免提示版本不匹配错误
1.4.2开启VT
1.5adb命令实践
1.5.1逍遥模拟器Android SDK中的adb.exe和对应的库文件替换模拟器中的adb.exe和对应库文件,以免提示版本不匹配错误
1.5.2adb基本命令操作
adb devices #查看连接设备和对应设备端口号
adb shell #进入shell,查看连接设备的底层LINUX系统
adb install %对应APK包路径% #在连接设备中安装apk
指定设备安装
1.5.2.1、连接指定设备
adb connect 127.0.0.1:21503
1.5.2.2、连接指定设备并安装卸载对应apk
卸载对应apk
1.5.2.3、adb shell #以超级管理员权限进入Android系统
1.5.2…4、cd /data/app/ #进入系统apk安装目录
1.5.2.5、ls #查看对应apk包名
1.5.2.6、adb -s 127.0.0.1:21503 install %对应APK包路径%
1.5.2.7、adb uninstall com.tencent.mm #卸载微信包,注意包名不包含后面的-1数字
root权限介绍(Linux、unix及Android系统超级管理权限)
1.5.3、查看设备上安装的应用的包名
adb shell pm list packge #查看所有包名
adb shell pm list packge|
1.5.4、文件读取
adb pull pc文件路径 设备路径
1.5.5、屏幕截图
adb shell screencap /sdcard/wandoujia.png
adb pull /d:
1.5.6、adb服务启动和关闭
adb kill server
adb start server
1.6Package和Activity
获取应用程序的Package:启动设备,并打开要抓取的APP,启动Android-SDK\tools下的UIautomatorViewer.bat
Activity获取
Activity页面布局
2、Monkey
2.1monkey简介
monkey是Android系统自带的,启动脚本位于Android系统/system/bin目录的monkey文件
2.1.1启动monkey
连接移动设备-adb shell–cd /system/bin–monkey
2.1.2强制关闭monkey
adb shell ps #查看全部运行的进程
查找出com.android.commands.monkey进程的PID
adb shell kill pid #关掉monkey进程
2.2.2monkey命令
adb shell monkey [option]
2.2.3monkey事件
1、触摸事件
Touch配置
2、手势事件
3、二指缩放事件
地图拖放
4、轨迹事件
5、屏幕旋转事件
6、基本导航事件
7、主要导航事件
8、系统按钮事件
9、启动Activity事件
10、键盘事件
11其他类型事件
2.2.4monkey参数
参数分类:
常规参数
帮助
adb shell monkey -h
日志级别
adb shell monkey -v
指令之间设置时间间隔
adb shell monkey --throttle 3000 10
执行指定脚本
adb monkey -f 脚本
伪随机数生成种子数
adb shell monkey -s 8888 200
调整触摸事件百分比
adb shell monkey -v --pct-touch
调整手势事件百分比
adb shell monkey -v --pct-motion 30 200
调整应用启动事件
adb shell monkey -v --pct-appswitch 40 200
调整屏幕旋转事件百分比
adb shell monkey -v --pct-retation
事件类参数
约束类参数
测试类参数
2.2.5monkey实例脚本实战
2.2monkeyrunner简介
monkeyruner工具是使用jython(使用Java编程语言实现的pYTHON)写出来的,它提供多个API,通过
monkeyrunner API可以写一个Python的程序来模拟操作控制Android设备app,
测试其稳定性并通过截屏可以方便的记录出现的问题
2.2.1monkeyrunner功能
2.2.2monkeyrunner环境配置
在Android SDK 安装目录中的tools下新建framework文件夹,将lib文件夹中的所有文件复制到framework文件夹中,再将platform-tools文件夹中的adb.exe
、AdbWinApi.dll、AdbWinUsbApi.dll复制到framework文件夹中。
配置好Android SDK环境变量后再加上%ANDROID_HOME%\tools\bin
安装JDK
安装python
2.3monkeyrunner API
分类:
MonkeyRunner类
MonkeyDevice类
MonkeyImage类
常用方法
installPackge(string path)
removePackge(string package)
startActivity(string url,strigaction,string data)
touch(interger x, interger y integer type)
实战案例:
功能需求:自动安装考研帮App并跳过欢迎页面,输入用户名和密码登录,截取登录成功截图保存本地
备注:所有坐标点参数根据实际设备进行设定
成功登录画面:
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
print("connect devices...")
device=mr.waitForConnection()
print('='*50)
print("install app...")
device.installPackage(r'D:\appnium-test\app\kaoyanbang_3.3.5.238.apk')
mr.sleep(3)
print('launch app...')
package='com.tal.kaoyan'
activity='com.tal.kaoyan.ui.activity.SplashActivity'
runComponent=package+'/'+activity
device.startActivity(component=runComponent)
mr.sleep(2)
print('touch cancel button')
device.touch(982,72,'DOWN_AND_UP')
mr.sleep(3)
#print('touch skip button')
#device.touch(631,892,'DOWN_AND_UP')
#mr.sleep(3)
print('input username and password')
device.touch(321,373,'DOWN_AND_UP')
device.type('ddtaxue')
mr.sleep(1)
device.touch(282,472,'DOWN_AND_UP')
device.type('ddtaxue')
mr.sleep(1)
print('touch login button')
device.touch(488,622,'DOWN_AND_UP')
mr.sleep(3)
print('take snapshot')
screenshot=device.takeSnapshot()
screenshot.writeToFile(r'D:\appnium-test\kyb.png','png')
mr.sleep(3)