APP测试
2020-05-13 14:12:56 0 举报
AI智能生成
软件测试_APP测试技术
作者其他创作
大纲/内容
性能测试
工具GT
手机安装GT.apk
手机建议root
GT使用
安装GT到手机端
打开GT首页,选择被测应用
勾选需要关注的参数,点击右上角启动
点击参数--出参-编辑-移动关注的参数-完成
回到手机界面;进入测试功能的界面
回到GT,点击录制按键
回到app,进行关键功能操作,完成后回到GT,停止录制
点击保存,记住保存的路径
通过任意方式把保存的文件复制到电脑端进行数据分析
通过微信,QQ传输
通过命令:adb pull 手机目录 电脑目录
测试情况分析
功能测试,页面响应慢,手机温度升高过快,用GT抓数据,作为bug的佐证
测试计划中规定要测试的内容,一般会有性能数据,只要做对比即可
出现问题的时候或者领导要求做;对比测试(竟品)
对比测试
对比的功能要一样
对比的步骤要一样
对比的时间尽量要一样
环境一样,手机的配置有一定的影响
GT已知的bug
可能存在获取不到的数据情况,如CPU,MEN
保存数据以后,在手机端或电脑端找不到文件,就用adb命令查找文件
需要手机root权限,否则导致数据无法获取
adb命令
配置环境
电脑配置好JDK/SDK环境变量
adb version显示版本即可
adb命令
adb version查看版本
adb connect 127.0.0.1:端口;adb连接手机/模拟器
adb devices识别设备
adb tcpip 5555:开启端口
adb start -server:启动adb服务
adb kill -server:结束adb服务
adb install 绝对路径:安装apk应用
adb uninstall 包名:卸载应用
adb pull 手机目录 电脑目录:手机文件拷贝到电脑端
adb push电脑目录 手机目录:电脑文件拷贝到手机上
adb shell命令
pm list packages查看手机所有app的包名
pm list packages -s:查看手机自带的app包名
pm list packages -3查看用户安装的app包名
adb shell monkey:查看monkey参数
adb -s 序列号 shell...:一台电脑连接多个手机,选择设备执行命令
Monkey
概念
Android中附带的一个工具,可以运行在模拟器或实际设备中
向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试
特点
Monkey测试,所有事件都是随机产生的,不带任何主观性
目的
进行压力测试,开发人员结合monkey日志和系统日志,发现测试中出现的问题
压力测试:一定时间之内不断加压,连续性的操作,验证系统是否稳定
稳定性测试:长时间高压操作下系统是否正常
monkey选项分类
基本配置选项,如设置测试的事件数量
运行约束选项,如设置只对单独的一个包进行测试
事件类型和频率
调试选项
参数
所有参数都在adb shell monkey与count事件数之间
Monkey常见参数分析
count
事件数,不可缺少
adb shell monkey 200
-p
指定某一个app某一些应用进行monkey测试
adb shell monkey -p 包名 -p 包名 count事件数
崩溃,超时,安全证书验证参数
忽略本地测试过程中关于崩溃,超时,安全证书验证
如果使用了这些参数,表示执行过程中发生上述问题,会结束app的进程,重新打开,继续执行直到次数完成
如果不使用这些参数,表示执行过程中如果发生上述问题,停止monkey测试
[--kill-process-after-error]
表示发生错误后,停止monkey测试,这个参数一般不使用
[--monitor-native-crashes] [--ignore-native-crashes]:对本地应用进行监测
模拟用户操作事件百分比,默认情况是不动的
-s SEED序列值
seed值设置
项目团队:参考项目团队值
个人:随机设置,要求开始monkey测试到结束monkey测试,seed保持一致
作用:用了一样的seed值,执行操作顺序是一样的,前提是初始状态要一致
开发来说:必现
测试来说:验证bug阶段,同样的seed值来验证bug是否解决
-v...
表示日志详细级别,详细程度,最多3个-v:-v -v -v
具体根据项目质量要求定
--throttle MILLISEC延时时间
执行完一个操作之后,会进行等待,最长等待时间
单位是毫秒,一般设定500左右,不要过大
执行时间:elapsed time = 70411ms
结果:\\Monkey finished成功的标记
Monkey日志分析
结果
\\Monkey finished
成功的标记;PASS通过
fail
crash://CRASH:com.songqin.sqcs(pid 5339) 发生了crash
anr://ANR in com.songqin.sqcs 发生了ANR超时问题
异常停止
有时长:Monkey aborted due to error
没有时长的日志中断
手机死机
手机重启:logcat日志搜索reboot/shutdown
tomstone:logcat搜索tomstone
其它异常情况
monkey日志:告诉我们monkey测试的成功与失败
logcat日志分析
monkey日志对应的logcat日志分析如下:
CRASH-->Fatal/fatal ecxception:main
ANR-->anr in
其它
有时长:Monkey aborted due to error
提交全部的logcat日志
没有时长:日志中断
提交全部的logcat日志
手机死机
提交全部的logcat日志
手机重启/关机:reboot/shutdown
tomstone
其他异常情况
提交全部的logcat日志
logcat日志
出现anr问题,除了提交logcat日志外
还需要提交/data/an目录下的traces.txt文件,手机需要root权限
bug
定位bug
monkey日志:告诉我们monkey测试的成功与失败
系统的日志logcat:定位具体的位置或时间点;adb logcat -v time>D:\log\logcat.txt 日志重定向保存于文本中
发现bug
复现bug,偶现还是必现3-5次
验证中用logcat抓取日志信息
截图,日志提交bug
偶现bug
工作中一般时刻保持USB的连接,一旦发生问题,以最快的速度启动adb logcat命令抓取日志
在复现bug确认是偶现还是必现,如果必现,考虑重新抓取日志,如果偶现,那么提交bug就用之前抓取的日志即可
bug编写规范
标题:[Monkey]执行monkey测试发生ANR in//Fatal/fatal exception:main
步骤
准备(同monkey执行的准备)
执行monkey命令
查看测试结果
实际结果:执行过程中发生ANR in/Fatal
预期结果:可以正常执行monkey测试,发生任何问题
提交附件
子主题
子主题
步骤
准备(同monkey执行的准备)
执行monkey命令
查看测试结果
实际结果:执行过程中发生ANR in/Fatal
预期结果:可以正常执行monkey测试,发生任何问题
提交附件
日常执行情况
monkey执行命令:
lgcat执行命令:
执行参考数据
count事件数:35万-36万次
--throttle延迟时间:450
-s seed值:10022
时长8-10小时
每天晚上下班执行monkey测试,第二天早上看结果,定位问题。
在基本功能稳定,一般在功能测试1-2轮之后,一直到测试阶段结束
注意事项
monkey命令执行后,只会自动停止,后台强制结束monkey的进程或者强制重启后关机才能停止
logcat命令不会自动停止,需要手工停止ctrl+c,一旦停止,需要定位手机是否重启
准备环境
电脑
电脑执行命令
电脑不能关机,可以关屏幕
配置JDK/SDK
手机
连接adb,可以执行命令
连接WIFI和数据网络,避免随机操作关掉某一个连接
关掉手机锁屏功能,设置常亮,设为最大值
手机电量90%以上
手机插耳机或放在隔音的地方
app
app要登录账号
monkey测试会自动退出账号,无法避免
更换seed值,初始状态最好一致
app安全测试
客户端面临的主要风险
反编译
防二次打包
组件导出
WebView漏洞
键盘安全
提示保存密码
服务端面临的主要风险
业务逻辑漏洞
SQL注入
上传漏洞
暴力破解
安全策略
H5测试
优势
可以跨平台使用,开发成本较低
可以随时上线更新版本,适合快速迭代
可以轻量的触达用户,提供快捷的服务
微信入口或浏览器上,用户只需点开链接就可以获取我们所提供的服务
劣势
app的转化强依赖于浏览器
目前基本无法将数据存储本地,依赖于实时性数据,需要网络好
性能相对较低,影响用户体验
功能验证
通过H5网页的返回功能返回
横竖屏切换,能自适应,且布局不会乱
页面内容详细点击进去,要在原窗口打开,可以通过页面的返回按钮返回,不需要通过物理返回键返回
关注页面请求,是否会有多余的请求,尽量精简
图片适配测试,根据不同的屏幕和分辨率做适配
小程序测试
特点
类web,非HTML5
即用即走,随手可得
拥有离线能力
基于微信跨平台
媲美原生操作体验
架构,框架
View视图层:View层用来渲染页面的结构
Appservice层:用来逻辑处理,数据请求,接口调用,它们在两个线程里运行
视图层使用WebView渲染,逻辑层使用JSCore运行
小程序入口
主入口
微信-发现-小程序
公众号的服务通知
微信小程序使用列表
Android系统
添加到桌面
微信小程序--附件小程序(5公里)
公众号
公众号菜单
关联小程序
公众号文章
公众号广告
扫码
微信扫二维码
从相册中读取二维码
长按识别二维码
链接
朋友会话中分享
群聊中分享
微信钱包中的定向小程序
小程序测试内容
功能测试
输入,输出,边界值
页面交互:微信和小程序
系统方面的交互
界面测试
设计是否美观
设计是否符合要求
尺寸是否合理
横竖屏切换操作
兼容性
小程序和微信上的其他小程序
微信版本
手机平台
不同网络状态,系统
交互
微信到小程序
交易:小程序的付款
与微信其他功能交互
与手机自带的app交互
易用性
是否方便
提示信息是否完整;易懂
功能是否可用
是否方便搜索
离线功能
性能
页面响应时间
资源占用;渲染时间
耗电量
白屏
安全测试
接口;传递数据时的保密
微信账号授权与取消
小程序与app账号的关联
其他
小程序的升级更新
分享
添加删除我的小程序
取消授权
手机的关注点
厂商/品牌:华为,VIVO、小米,苹果
系统级版本
Android
架构
Appcation:日历,联系人,邮件等,用Java编写
应用程序框架,开发人员可以访问框架API
系统运行库,为开发者提供服务
Linux内核
IOS--Object-c编写的
尺寸分辨率
市场占有率
APP专项测试
兼容性测试--受关注的人群,功能,手机的选择
弱网测试--关注app网络不稳定或弱网的环境下运行是否稳定;2G/3G/4G
稳定性/压力测试--模拟用户在实际的长期使用中是否可以稳定运行,或者发生重大异常
性能测试--关注app在手机端的使用性能及用户体验
接口测试--关注系统在整体接口功能的实现
流程
规范流程
项目立项--了解项目信息
需求评审
静态测试,文档
对象:项目中所有产出的文档都要经过评审
流程:准备-审批-预审-审查会议-修改-验证-总结
预审机制:提高评审的效益和质量
参与人员:开发,测试,产品,项目经理
测试计划
测试活动的范围,方法,资源,进度文档
对整个信息系统应用软件组装测试和确认性测试
确定项,被测特性,测试任务,谁执行任务,各种可能风险
可以有效预防计划的风险,保障计划顺利的实施
用例设计--编写测试用例
执行测试 bug 专项测试--执行测试用例,发现bug 提交bug
总结,报告
实际流程
功能测试
专项测试
兼容性测试
稳定性测试
测试计划包含内容
5W1H
what:为什幺要进行测试
why:测试哪些方面
when:测试不同阶段的起止时间
where:相应文档,缺陷的存放位置,测试环境等
who:项目相关人员,安排哪些测试人员进行测试
how:如何去做,使用哪些工具和测试方法
详细内容
测试目标--对测试目标进行简要概述
测试概要--所需测试的软件,名称的解释
测试范围--需要测试范围和优先级
重点事项--主要功能和测试重点
质量目标--产品质量目标和软件测试目标
资源需求--软硬件,测试工具,必要的技术资源,培训,文档等
人员组织--多少人,角色和责任
测试策略--使用的测试技术和方法
发布提交--交付的软件产品,测试案例,测试用例及相关文档
测试进度和任务人员安排--将测试的计划合理分配到不同的测试人员
测试开始/完成/延迟/继续的标准
风险分析:需要考虑测试计划中可能的风险和解决方法。
来源
领导,专项测试
作用
对内-测试
对外-客户
app测试功能点
安装测试
应用商店安装
手机助手安装--360,豌豆荚
adb命令安装
离线apk文件安装
安装后是否可以打开
是否可以覆盖重复安装
安装过程中,来电话,消息
安装过程中切换其他应用
低电下安装
安装是否可以取消
内存不足情况下安装
安装需要网络的,验证断开网络情况
卸载测试
安装是否可以卸载
卸载后是否可以再次安装
应用助手卸载
长按应用卸载
应用管理中卸载
低电下卸载
adb命令卸载
卸载中关机重启
下载安装
官网下载
二维码下载
分享下载
登录功能
帐号密码验证码--输入框:等价类,边界值,UI
业务功能--登录按键
应用
增删改查操作--只要有数据库的权限,就要到数据库验证数据的准确性
点击,滑动,切换,网络支持,数据显示
设置:app设置,手机系统设置,如消息通知
app消息通知--手机设置的消息通知,确认app的消息通知逻辑是否受手机消息通知的影响
前后台切换,锁屏后解锁
网络--关键步骤,验证不同网络下的运行情况
手机硬件操作
调节音量,返回,锁屏,亮度
升级更新
前提有新版本,升级安装一定是覆盖安装
升级方式
手工升级--取消之后,当前版本还能继续使用,在下一次启动app提示
强制升级--不能取消,取消后退出到桌面
跨版本升级--忽略该版本勾选框,勾选后,该版本不会有提示,有下一个新版本提示
离线升级--有网络的情况下自动下载升级,升级的时候提醒:本次升级不耗费流量
在线升级--本次下载多少M内容,是否到wifi下升级
增量升级--只升级下载需要升级的部分文件,然后进行安装
全量升级--下载全新的所有内容进行安装,文件内容一致的话就是直接覆盖
升级更新的提示信息
弹窗提示
app设置版本检查
升级前后的功能验证,新功能,旧功能都要验证
升级前后的个人数据保存
定位,照相机服务
app有用到相机,定位服务时,需注意系统版本差异
有用到定位服务,照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常
测试定位,照相机服务时,采用真机进行测试
定位服务没有开,使用定位服务,会友好性弹出提示
交叉事件测试
app运行前/后台切换是否影响正常功能
app运行时拨/接听电话
app运行时发送/接收信息
app运行时发送/收取邮件
app运行时切换网络(2G/3G/4G/WIFI)
app运行时浏览网络
手势操作测试点总结
手机开锁屏对运行中的app的影响
切换网络对运行中app的影响
运行中的app前后台切换的影响
多个运行中的app的切换
app运行时的关机
应用程序主体分类
网页应用Web App
基于浏览器打开的,不用安装,点进去后所有的请求都会发送对应的服务器
代表:手机上的浏览器,基本在首页上的,如:百度,携程,拼多多
原生应用Native App
针对app说
基于手机系统而研发的app
代表:照相机,日历,不同系统之间不能兼容
针对手机说
手机整机测试,手机出厂带的应用,包括hybrid app 有第三方的概念:用户自己装的app
代表;小米手机上的小米应用商店,小米运动,淘宝,京东
混合模式Hybrid App
web app+native app
代表:大部分的应用都属于混合模式移动应用,浏览器,百度浏览器,QQ浏览器
手机的选择
选择的手机应该是支持测试app的功能,如红外功能操作电视,NFC
受众人群
针对手机
主测:进行功能测试的时候(测试比较细,时间较长,内容较多),大众化,人用的多的手机
辅测:兼容性测试,其他验证性测试
针对人
当有两个或以上的人负责同一个功能或模块,分主测辅测
主测:对该功能或模块有责任的,直接负责人
辅测:辅助性测试
品牌,厂商
分辨率,尺寸
市场占有率
支持的最低版本和市场目前的最高版本
兼容性测试
什么是兼容性测试??
app角度:验证app在不同手机上运行情况
整机测试角度:手机当前版本和谷歌官方原生版本是否过大
为什么要做兼容性测试?
安卓碎片化严重,版本差异化大
兼容核心
版本
数据库
网络
硬件
测试方法
人工
选择手机:租赁/购买;数量:20-60台,根据人数和测试时间定,6个人测试工程,60台,一天,测试+解决bug
测试用例
直接从功能测试用例挑选优先级高,正向用例,主要功能的测试用例进行
直接涉及及测试要点(正向,主要功能)
集中一段时间 2-7天完成
云测testin
优势
测试的比较全面,比较深入
真机自动化,量大,7*24小时服务
劣势
成本比较高,测试bug以后没有人员沟通
可能存在没有手机可用
弱网测试
为什么要做弱网测试??
自身数据网络不稳定
客观环境变化导致信号不稳定,如:地铁,停车场等
怎样去做弱网测试??
SIM卡数据流量测试
用功能测试的手机
手机上插SIM卡,连接数据网络,SIM卡是项目组提供的,如果双卡双待都要进行测试,覆盖到散打运营商
数据流量设置不同类型网络,如:2G/3G;若没有2G,3G?采用工具/实际场景
在不同网络模式下进行测试app的主要功能测试
完成后,出具专项测试报告--有迹可循
工具
charles/Fiddler,二者选其一
charles工具的使用
下载安装
下载链接:https://www.charlesproxy.com/download/ 安装后需要破解
破解
在线破解:https://www.zzzmode.com/mytools/charles/
RegisterName:随便写
选择破解的版本
生成的charles.jar替换Charles安装目录下的lib下charles.jar
重启charles即可
基本设置
proxy-access control settings--add--0.0.0.0/0 保存即可
抓取电脑端http协议数据设置
Foucs:点击请求--右键Foucs;归纳/显示改域名的请求信息
clear oters:点击请求--右键clear others;保留选中的请求,其他全部清除
弱网测试设置
proxy--throttling settngs--勾选enable throtting--设置数值
查看overview--duration time 总耗时。进行弱网后,耗时应该变长
https抓包
proxy--ssl proxy settings--勾选enable ssl proxy--添加* 端口443-确定
help--ssl proxy settings--instal chrales root certificate(安装在受信任的根证书)
save chrales root certificate(格式pem/cer)
手机端浏览器输入:chls pro/ssl,前往 下载安装证书。
弱网测试可能出现的现象
0 条评论
下一页