Android开发、adb、monkey测试
1.手机测试概念
传统手机测试 VS 手机应用软件测试
传统手机测试:指测试手机本身比如抗压,抗摔,抗疲劳,抗低温高温等。也包括手机本身功能、性能等测试。
手机应用软件测试 C/S Client/Server
手机应用软件是基于手机操作系统之上开发出来的软件,做这样的测试就叫做手机应用软件测试。
2.手机端常规测试
Android后缀apk,ios后缀是IPA(iPhoneApplication)
13大测试:
UI测试,功能,性能测试,兼容性测试,安装卸载测试,软件升级测试,登陆测试,安全性测试,消息推送,前后台切换,网络环境测试,monkey测试,异常测试
3.Android介绍
介绍:Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑
四层:Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层
4.ADB
1.简介:ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机)
它的主要功能有:
运行设备的shell(命令行)
管理模拟器或设备的端口映射
计算机和设备之间上传/下载文件
将本地apk软件安装至模拟器或android设备
2.配置ADB环境变量
打开:adt-bundle-windows-x86_64_20140101文件找到adb.exe所在路径配置ADB_HOME环境变量
3.ADB常用指令
查看设备:adb devices
安装软件:adb install -r (APK路径)
卸载软件 adb uninstall <软件名> adb uninstall -k <软件名>
登录设备shell adb shell adb shell
查看手机内存情况 adb shell dumpsys cpuinfo
查看内存情况 adb shell getprop | findstr dalvik 本机内存的使用情况
查看应用内存使用情况 adb shell dumpsys meminfo +包名:应用的内存使用情况
列出手机装的所有app的包名: adb shell pm list packages
列出系统应用的所有包名: adb shell pm list packages -s
列出除了系统应用的第三方应用包名: adb shell pm list packages -3
adb logcat 查看手机日志
Android 的日志分为如下几个级别:
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出
5.APK牢固性
应用加固防篡改:通过完整性保护和签名校验保护,能有效避免应用被二次打包,杜绝盗版应用的产生;防逆向:通过对代码进行隐藏以及加密处理,使攻击者无法对二进制代码进行反编译,获得源代码或代码运行逻辑;防调试:通过反调试技术,使攻击者无法调试原生代码或Java代码,阻止攻击者获取代码里的敏感数据。
6.Monkey测试
1.简介
顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试
Monkey 主要用于Android 的压力测试自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash
2.Monkey前提条件
1.环境配置:把adb加入系统环境,手机开启开发者模式
2.连接手机,获取测试的包名。获取包名的方法
3.Monkey编写测试命令,并运行。[monkey操作命令
7.Monkey命令 基本参数介绍
1.-p <允许的包名列表>:adb shell monkey -p com.example.login 100
2.显示日志详细程度
1.adb shell monkey -p com.example.login -v 100 // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
2. adb shell monkey -p com.example.login -v -v 100 // 提供较为详细的日志,包括每个发送到Activity的事件信息
3.adb shell monkey -p com.example.login -v -v -v 100 // 最详细的日志,包括了测试中选中/未选中的Activity信息
3..Monkey日志分析
将log信息写到文档中:adb shell monkey 100 >c:/log/b.txt
4.--throttle <毫秒>
adb shell monkey -p com.example.login --throttle 300 100
表示执行100个伪随机用户事件流,事件间隔为300毫秒。
5.-pct-touch 调整触摸事件的百分比
6.--pct-motion 调整motion事件百分比
7.--ignore-crashes 通常,应用发生崩溃或异常时Monkey会停止运行
8.--ignore-timeouts 通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行
Monkey实例:monkey -p com.tencent.mtaexample -s 23 --throttle2000 --ignore-crashes --ignore-timeouts -v -v -v 100000>/data/local/tmp/log.txt 2>&1 &
9.Monkey异常分析
日志中可能的错误:
1.程序异常退出,uncausedexception (ctrl+f搜索‘Fatal’)
2.程序强制关闭,ForceClosed (简称FC) (同上)
3.程序无响应,ApplicationNo Response(ctrl+f搜索‘ANR ’,加空格是为了屏蔽掉一些无效信息)
4.手动生成。
8.手机兼容性测试
App云测试平台:Testin、贯众云测试、百度MTC、阿里MQC等
9.真机测试
手机打开开发者选项→勾选USB调试→输入adb devices监测连接设备