步骤:需求整理----测试评审---测试计划--测试方案---准备(环境、数据)--测试用例设计--执行--提交结果--文档归档--发布
专项部分的测试:
1、移动端自动化工具:monkey、adb、monkeyrunner、性能监控工具、appium
2、是什么?如何用?怎么分析?
1)adb:安卓调试桥,主要是通过adb服务器进程由PC端控制访问移动端进行各种自动化操作。
操作:adb devices ---查看连接设备(模拟器、真机)
adb push--上传(推送)--PC——》手机端
adb pull --下载 手机端-----》PC
adb install--程序安装:指定是PC端程序的安装包(.apk/.ipa)
adb uninstall --程序卸载:指定手机端程序的包名
包名获取方式:
1)aapt拆包解析:aapt dump badging 安装包
2)adb shell命令形式获取:
pm list packages :获取系统中所有的程序的包名
pm list packages -f:获取程序所在位置及包名
pm list packages |grep 关键字:以关键字信息过滤查找包名
pm list packages -f |grep 关键字:过滤关键字信息相关的包名及路径
dumpsys window |grep mCurrent :显示当前已启动程序包名。
adb logcat >D:\test.txt --持续跟踪运行日志并另存指定位置
adb logcat -d >D:\test1.txt --一次读取返回后另存指定位置
adb shell 常用命令:pwd /ls -l/ cat /|grep /ps /cd /date
cat /proc/meminfo 查看内存信息
cat /proc/cupinfo 查看cpu信息
补充:自动化测试工具环境配置--
jdk /skd--platform-tools/tools
2)monkey :随机测试,通过自动化的方式随机模拟用户行为对系统进行大量随机的测试实现
形式:touch(点击、触摸) motion(滑动)、syskeys(系统级操作)等
命令:adb shell monkey
-p com.android.browser --pct-touch 50 --pct-motion 20 -s 10 --throttle 300 --ignore-crashes
--ignore-timeouts --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 >D:\app1.log
分析:1、ctrl+f分别搜索定位:exception、crash、ANR、GC、force_closed.
2、定位到相关内容后,进行上下文分析,确定相关错误信息,进行整理反馈开发人员即可
3)monkeyrunner
本质:Android\sdk\tools目录自带的自动化回归测试工具
问题1:monkey和monkeyrunner的区别?
monkey是对App进行随机大量的稳定性测试
monkeyrunner是对App进行有序逻辑下自动化回归测试。
问题2:monkeyrunner的三大组件?
A、MonkeyRunner工具类--帮助连接手机设备
a、waitForConnection(),指定设备名称及超时时间 deviceID:模拟器-‘Emulator-5554’,真机-'随机的十六进制数’
device1=MonkeyRunner.waitForConnection(超时时间,'Emulator-5554')
device2=MonkeyRunner.waitForConnection(超时时间,'afdf1515')
if not device1
print
b、sleep(),时间缓冲
MonkeyRunner.sleep(1)
B、MonkeyDevice工具类--对手机执行操作
a、常量:DOWN-按下,UP--抬起,DOWN_AND_UP ,按下后抬起
b、方法:
touch()--触摸、点击;touch(坐标,逻辑)
device.touch(245,300,'DOWN_AND_UP')
wake()--点亮屏幕,空参
device.wake()
type()--输入内容;type(输入内容)
device.type('10086')
drag()--滑屏,滑动;drag(开始,结束,持续时间,步骤插值)
device.drag((250,245),(250,350),2,10)
下滑操作---注意:X轴确定左右滑动,Y轴确定上下滑动
长按:参数坐标位置不变即可
device.drag((250,245),(250,245),2,10)
重启:reboot()
device.reboot()
系统级操作--press(),参数:press(按键名称,逻辑)
主要一些系统级按键名称:
三大主键:KEYCODE_HOME,KEYCODE_BACK
KEYCODE_MENU
拨号键: KEYCODE_CALL
光标移动: KEYCODE_DPAD_UP/DOWN/LEFT/RIGHT
takeSnapShot()---截图
image=device.takeSnapShot()
注意:当前全部屏幕进行截图,包括手机相关图标,会随着一些环境变化,而发生变化,但是并不是测试主体的内容。
C、MonkeyImage工具类--对截图做各种处理
a、writeToFile()---保存内容到指定位置
image.writeToFile('D:\test.png','png')
b、sameAs()--对比测试截图
假设D:\comtest.png
result=device.loadImageFromFile(‘D:\comtest.png’,'png')
test= image.sameAs(result,0.9)
if test
print '测试通过'
else
print'测试失败'
问题3:程序中坐标的获取
1、设置中--pointer location
2、MonkeyRecoder--录制方法