移动APP测试大全.docx
《移动APP测试大全.docx》由会员分享,可在线阅读,更多相关《移动APP测试大全.docx(12页珍藏版)》请在冰豆网上搜索。
![移动APP测试大全.docx](https://file1.bdocx.com/fileroot1/2023-1/23/972fa086-b73d-4a4c-b16a-3a4584221a98/972fa086-b73d-4a4c-b16a-3a4584221a981.gif)
移动APP测试大全
移动APP笔记
Genymotion:
安卓的虚拟环境
1、adb命令
1、安卓调试桥(androiddebugbridge)
adb命令设置一下环境变量C:
\ProgramFiles\Genymobile\Genymotion\tools
1、查看链接设备
adbdevices查看链接设备:
会显示IP地址和端口号
2、安装:
adbinstall安装apk文件
adbinstall+包所在的路径
多台设备:
adb-sIP地址:
端口号install所在路径
adb-s172.31.129.22:
5555installD:
\ecmobile3.2.apk
3、卸载
adbuninstall+包名卸载如果有多个设备用–sIP地址:
端口号
adb-sIP地址:
端口号uninstall包名
4、查看包名
aaptdbadgingapk所在路径|find“package”
用find过滤一下在windows中过滤使用find并且后面名字加双引号
5、进入安卓系统
adbshell
进入之后类似于linux系统,命令是通用的。
进入系统常见的目录
1、/data/app:
里面都是上传的apk文件,其实都是压缩包
2、/data/dalvik-cache:
里面是app中可执行文件.dex
3、/data/data/包名:
、
1、databases:
前端用户数据
里面有两个文件:
ecmobile.db:
数据库文件
ecmobile.db-journal:
日志文件,回滚用
2、shared_prefs:
用户设置,只有进入系统之后才有生产这个文件不进入没有这个文件里面都是一些用户信息.xml文件
6、从安卓系统中拉取文件
adbpull安卓系统中所载位置导出到的位置
7、将文件从外界环境导入安卓系统中
adbpush外界路径安卓系统的位置
注意:
linux系统中斜杠/windows系统中反斜杠\
8、模拟真机
1、进到/etc/hosts修改IP和域名
2、挂载-》修改文件的权限chmod777/system
3、
APP常见的测试类型
1、安装测试
1、在PC端
安装前:
检查文件齐全
安装中:
安装步骤
安装后:
安装后的文件目录是否正确
2、APP测试:
安装前:
apk文件病毒检查
安装中的安装途径多样:
1、商店下载安装,2、上传apk文件到sd卡安装3、adb安装4、浏览器下载安装。
安装后:
启动检查,权限检查,欢迎界面检查
升级:
1、通过adb升级,2、应用商店升级,3、网页升级,4、高版本低版本同版本覆盖安装,5、考虑有无存储数据或者缓存。
2、卸载测试
1、adb卸载
2、第三方应用卸载
3、系统进行卸载
3、功能测试
PC端:
1、单功能测试:
单个功能,重点在各种异常情况
2、功能交互:
功能之间相互影响
3、业务流程:
特殊流
1、APP分类
1、原生APP:
不需要安装,不需要网络,直接安装在设备里面,可以直接调用手机终端的硬件设备
2、webapp:
需要网络,不需要下载
3、混合APP:
需要下载安装
2、业务测试
Fiddler使用只能抓http协议包,不能抓原生的APP的包
在tools下options,decode,设置虚拟的手机网络
模块:
1、inspector:
包含子请求,查询数据json数据
2、autoresponder自动响应,编写想要的响应的信息
3、filters过滤器输入host
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。
JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。
字符串的形式来传输信息
3、功能交互
1、与手机系统功能的交互:
混合APP和原生APP之间的交互,电话闹钟,短信
2、与手机管理软件或安全软件交互:
权限,休眠:
软件长时间不用能否正常休眠,关闭网络
4、操作方式
1、屏幕旋转方式
2、锁屏键,HOME键,back键(系统会给APP一个广播,APP中有接收的话就会产生一个功能)
3、滑屏,长按,双击,多点触控
5、通知栏测试
系统会给APP一个广播,APP中有接收的话就会产生一个功能
6、双卡双待测试
7、android四大组件
1、activity界面
1、查看日志
Catlog工具查看日志,更多注重红色的错误信息,拖拽进SD卡安装,授权
1、通过包名查看
2、通过displayed查看:
通常是查看进入一个页面的时间
性能测试的时候可以查看进入首次进入软件所使用的时间欢迎页面+首页时间
一个activity只对应一个界面,但是一个界面对应多个activity
2、查看进程
Ps|grepecmobile
3、用户ID
用户ID可以很好的隔离不同APP的数据,方便保护APP数据
/data/system/packages.list
/data/system/packages.xml:
记录系统中安装apk的所有属性
2、service后台服务
在移动端有些应用已经关掉但还是可以不断地收到信息。
因为service
3、broadcastreceiver广播
锁屏键,home键,back键,会想所有的APP发送广播,如果APP有处理会产生一个功能
4、contentprovider内容
APP之间的数据共享
4、性能测试
在pc端的性能测试
1、负载测试:
1、不同负载下系统的各项性能指标和需求说明书是不是相符合
2、测出最大负载和最佳负载主要是针对系统的的能力
2、压力测试:
在极限负载的情况下系统是否可以长时间稳定的运行,主要是测试系统的耐力
3、容量测试:
主要是针对数据库容量、带宽、等的测试
APP性能测试
1、时间
1、启动时间
1、首次启动时间
安装好app第一次运行的启动时间
2、非首次启动时间
热启动时间:
app对应的进程处于运行的状态
冷启动时间:
APP对应的进程没有运行:
很多APP不支持冷启动,是关闭后台进程之后在ps可以查看到进程,要在安卓系统中杀掉进程。
2、切换时间
不同界面之间的切换
2、存储空间
1、安卓内存
native堆内存:
是镜像文件所产生的/data/data/包名/lib中的.so文件所产生的
1、dalvik堆内存:
是java程序产生的
dalvik内存可以通过/system/build.prop|grepheap(内存)查看
dalvik.vm.heapsize=256m最大是256
dalvik.vm.heapstartsize=8m最小8
dalvik.vm.heapgrowthlimit=96m限制的内存是多少
dalvik.vm.heapsize=256m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
如果超出内存会产生溢出OOM超出heapgrowthlimit
2、内存占用
查看每一个应用的内存(pss)
Adbshelltop–n400|grep包名动态的显示
查看进程占用内存的情况:
procrank
当APP打开某一个超大图片的时候可能产生内存溢出
3、GC(垃圾回收,获取垃圾信息)
1、先挂载,改权限,导出文件。
注意要进入到system里面挂载
Mount-orw,remount–tyaffs2/dev/block/mtdblock3/system
Chmod777/system
导出垃圾文件
logcat是android中的一个命令行工具,可以用于得到程序的log信息
-v
设置输出格式的日志消息。
默认是短暂的格式。
支持的格式列表
Logcat-vtime-vthreadtime|grepGC>gcfeil.txt
Ctrl+C结束一下
然后在外部用adbpull拉出来,注意拉出来好看一些就用csv表格格式
查看的分别是百分比,free,占用值/总空间
4、APP占用空间
/data/data/包名下输入du–sH查看目录的空间大小
其实这个值是不断变化的,要多次查看主要看APP占用的空间
3、CPU中央处理器
通过emmagee机关枪的工具进行测试,是一款APP性能测试工具
停止测试之后会将文件导出在sd的文件里面/sdcard
导出到windows系统中注意退出安卓系统在进行导出
文件里面都是应用占用内存,内存使用率
4、GPU(图形处理器)
关注点:
GPU过度绘制造成CPU资源浪费,设置-》开发者选项-》GPU勾选
杀掉进程,重新打开软件。
1、浪费GPU资源
2、很耗电
如果GPU过度绘制会导致电量消耗很快一般这个bug级别比较低p3p4级别
5、流量
使用中流量
待机流量
6、功耗(电量)
1、安装功耗1、安装前测试电量
2、安装完成测试电量
3、相减
2、待机功耗
3、使用功耗
7、性能测试需要进行横向和纵向对比
横向:
竞争对手
纵向:
以前的版本
形成基线:
有一个基准,来对比是调优还是调差了
5、兼容性测试mqc工具
在web测试中主要测试1、兼容性测试2、浏览器测试3、屏幕尺寸4、温度、压力
1、安卓系统的碎片化:
各个厂家的的软硬件不同比如小米,魅族,华为等等
2、屏幕尺寸:
4寸5寸
3、屏幕像素:
像素越大,越清晰
4、屏幕分辨率:
长和宽上的像素
5、权限设置:
不同用户对于设备权限的控制的不同,比如混合APP使用系统软件要确认
6、借助测试平台进行兼容性测试:
阿里云mqc,XX云测,testin,腾讯优测
6、易用性
操作是否便捷,是否美观易懂
APP易用性测试:
1、操作按钮点击范围是否合理
在开发者选项中打开显示布局边界
2、界面:
图标识别度
7、可靠性测试
稳定性:
成熟性,容错性,易恢复性,依从性质量模型的6个特性27个子特性
1、稳定性测试
Monkey测试,随机测试
1、是安卓中一个命令行工具是安卓自动化测试的一种手段
2、Monkey测试是通过向系统发送一个伪随机的用户事件流,比如多点触控,手势输入
3、Adbshellmonkey-p包名--throttle500-s9-v-v-v1000>D:
\monkey_log.txt
时间间隔什么事件流日志级别
4、使用simiasque工具(是一个apk的包)屏蔽通知栏,防止monkey测试通知栏
5、如果文件中最后一行是monkeyfinished证明正常的
在日志中查询ANR(应用没有响应)ExceptionCrash如果有直接截图报bug
一般情况:
3万以内出现Crash。
认为系统可靠性比较糟糕
2、异常测试
1、断电重启
2、网络中断:
将网络关闭,然后卸载应用,在安装应用,进入软件首页空白,打开网络之后首页还是一片空白。
Bug
3、程序异常退出
4、APK文件名包含中文:
其实是不可以的
5、清除缓存/data/data/包名下面都是缓存
卸载应用之后查看里面有几个缓存文件,然后安装之后在有几个缓存文件
8、网络测试
1、网络分类
2G,3G,4G,wifi,使用状态迁移法进行设计
2、不同网络之间的切换
3、关注点:
上行速率:
服务端向客户端发送数据
下行速率:
客户端向服务端发送数据
延时:
latency
丢包率
4、网络切换下APP的使用
5、弱网、无网测试
6、工具的使用:
Networkforwindowstoolkit
1、安装
2、Newlink添加上行速率loss:
丢包error:
错误latency:
延时
3、Filter添加网卡addcards
4、Dialup56k
5、Start
9、工具
1、业务测试:
fiddler
2、界面测试:
catlog
3、测试CPU中央处理器:
emmagee机关枪网易的工具
4、稳定性测试:
屏蔽通知栏simiasqueapk包
5、网络测试:
network工具弱网工具
10、利用系统的设置
1、GPU测试:
开发者选项,显示GPU过度绘制
2、易用性:
开发者选项,显示布局边界
11、文件所在的位置
1、native内存:
/data/data/包名/lib里面的.so文件产生的
2、delvik内存:
java程序产生的
/system/build.prop|grepheap来查看对内存的限制信息
3、GC垃圾收回
在system下进行挂载mount-orw,remount-tyaffs2/dev/block/mtdblock3/system
Chmod777/system
Logcat-vtime-vthreadtime|grepGC>GClog.txt
GCklog.txt文件所在的位置在/system下面
退出安卓系统exitadbpull/system/GClog.txtD:
\GClog.txt
4、APP占用的空间
/data/data/包名我们只查看APP占用内存的空间所以在 前面的路径下面输du-sH
5、monkey测试
注意和查看垃圾信息不同的地方在于,monkey测试直接把垃圾信息拉倒windows系统
Monkey-p包名--throttle300-s9-v-v-v1000>D:
\
-v-v-v这种日志的级别是最高的
6、清除缓存
/data/data/包名/里面都是缓存文件
7、emmgagee机关枪会自动把文件保存到/system/sdcard下面
退出安卓系统将文件导出就可以了
1、请以您以往的实际工作为例,详细的描述一次完整的过程
(假设系统经过1、2次的迭代)
1、首先搭建测试环境,在项目管理软件上下载部署文档以及项目包。
2、按照部署文档搭建测试环境在服务器上安装JDK,设置环境变量。
安装tomcat,安装PHP,安装mysql,修改密码(注意第一次连接数据库之后,再次连接要先杀掉之间的服务),将项目文件夹放在指定的文件夹下面。
依次开启服务,进入bin/startup.sh,安装项目
3、阅读需求规格说明书,同时熟悉软件,使用软件。
4、编写测试计划文档:
目的,概述:
项目背景、范围,被测对象,测试通过/失败的标准,测试挂起标准/恢复的条件,需求跟踪,测试任务:
测试计划,测试设计,测试实现,测试执行,输出的成果物,工作量的估计,资源分配
5、编写测试方案文档:
目的,被测对象,测试模型:
组网图、测试方法、执行顺序,测试需求:
环境、对象、工具、数据,测试设计:
工具,代码,用例,规程,用例规模,回归策略,预测试策略。
6、需求分析:
质量模型分析法,功能交互法,场景分析法
7、编写测试用例:
根据测试方案,补充测试输入数据和操作步骤,预期结果
测试用例常用的方法:
等价类划分法,边界值法:
适用于所有的功能测试
正交实验法:
一般是用在查询条件的组合测试
判定表法:
多种条件决定多个结果比如订单的状态
流程分析法:
主流程,异常流程,备选流。
比如登录
状态迁移法:
多种状态的切换,触发条件引起状态的切换
错误猜测法
8、测试用例评审
9、预测试
10、执行测试用例,记录bug,提交bug
11、回归测试
12、测试总结:
测试报告文档
项目二:
DBshop商品后台管理系统:
商品管理模块:
管理商品可以新增商品
管理分类:
商品分类
商品属性:
属性分组,属性:
属性值设置
商品品牌:
新增商品品牌,前台可以看见
商品评价:
商品评价可以删除,查看
项目三:
CRM客户关系管理系统
潜在客户
(学习的目的是增长知识,提高能力,相信一分耕耘一分收获,努力就一定可以获得应有的回报)