前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测试开发进阶(四十六)

测试开发进阶(四十六)

作者头像
zx钟
发布2019-12-19 23:11:03
5790
发布2019-12-19 23:11:03
举报
文章被收录于专栏:测试游记测试游记

为什么要做APP专项测试

  • 奔溃(crash)
  • 卡顿
  • 兼容性问题(占据大多数时间)
  • 发热/发烫

硬件耗电->产生热量

  • 响应慢

2-5-8原则 2秒钟 -> 优 5秒钟 -> 可以接受 8秒钟 -> 不能接受

专项纬度

场景测试

兼容性测试
  • testin云测
  • STF实验室平台
压力稳定性测试
  • Monkey
弱网测试
  • fiddler代理
  • network Emulator toolkit
  • Facebook ATC
安全测试
  • BurpSuite
  • ApkTool/Dex2Jar/JD-GUI反编译
  • 安装包签名
  • 账户安全

性能测试

CPU
  • proc文件-Jiffies
  • GT/soloPi
电量测试
  • 腾讯GT
  • battery historian
流量测试
  • proc文件
  • 腾讯GT
启动时间
  • adb shell am start
  • soloPi插件
流畅度专项
  • 卡顿root cause
  • FPS/SM
  • GPU呈现模式/GT
  • 卡顿分析

  • 页面多度绘制
  • TraceView/StrictMode
  • 频繁GC
内存专项
  • 内存泄露/溢出
  • 内存占用
  • LMK
  • leakcanary

兼容性测试

由于移动端的碎片化特征,需要确保App产品能够在不同系统版本,不同屏幕分辨率,不同系统定制ROM也能够有好的用户体验

  • 系统版本兼容

Android:

  • 2.2 2.3 milestone
  • 4.0 4.1 4.2 4.4
  • 5.0 5.1
  • 6.0 6.1
  • 7.0 7.1
  • 8.0 8.1
  • 9

IOS:

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

  • 系统定制ROM兼容(Android)

小米MIUI

华为EMUI

魅族flyme


  • 屏幕分辨率兼容

APP流量数据https://tongji.baidu.com/research/app

方案

  • 云测平台
  • 自建STF平台:http://www.lemfix.com/topics/341

压力稳定性测试

App长时间在前/后台运行,用户对于App的稳定性有更高的要求。

通过稳定性测试来避免奔溃(crash)/无响应(ANR)/内存泄露等问题。

  • Monkey 支持Android

优点:

Google原生工具,使用简单,开源

缺点:

基于坐标,遍历深度不够,无详细报告


  • Maxim 支持Android

优点:

基于uiautomator引擎实现,多种模式运行

缺点:

不开源,无法定制


  • FastMonkey 支持IOS

优点:

基于XCTestWD,swiftmonkey二次开发,无需插桩 效率高

缺点:

配置复杂


adb

  • 安装

https://www.douban.com/note/701408420/

  • 查看版本
代码语言:javascript
复制
$ adb version
  • 查看设备连接情况
代码语言:javascript
复制
$ adb devices

使用「夜神模拟器」

  • 杀死/重启adb服务
代码语言:javascript
复制
$ adb kill-server$ adb start-server
  • 查看当前运行的包名
代码语言:javascript
复制
$ adb shell dumpsys activity | find "mFocusedActivity"

dumpsys:解析信息

activity:页面名字

monkey

乱点1000次

代码语言:javascript
复制
$ adb shell monkey 1000

-p用于约束限制,用此参数指定一个或多个包(App名字)

指定包之后,Monkey将只允许系统启动指定的App,如果不指定则允许启动设备中的所有APP

代码语言:javascript
复制
$ adb shell monkey -p com.lemon.lemonban 1000

-s用于指定伪随机数生成器的seed值

如果seed相同,则两次Monkey测试所产生的事件序列也相同

代码语言:javascript
复制
# 提前指定,第一次Monkey测试出了bug
$ adb shell monkey -p com.lemon.lemonban -s 101 1000 
# 第二次测试的流程和第一次一样就可以保证复现
$ adb shell monkey -p com.lemon.lemonban -s 101 1000

-v日志级别

  • -v

默认值,仅提供启动提示,测试完成,最终结果

  • -v-v

提供较为详细的日志,包括每个发送到Activity的事件信息

  • -v-v-v

最详细的日志,包括了测试中选中/未选中的Activity信息

代码语言:javascript
复制
$ adb shell monkey -p com.lemon.lemonban -v -v 1000 
$ adb shell monkey -p com.lemon.lemonban -v -v -v 1000 

--throttle<毫秒>

指定用户操作间的时延

代码语言:javascript
复制
$ adb shell monkey -p com.lemon.lemonban --throttle 3000 1000

--randomize-throttle

指定随机延时,单位毫秒

执行1000次随机事件,间隔在0~300毫秒之间

代码语言:javascript
复制
$ adb shell monkey -p com.lemon.lemonban --throttle 300 --randomize-throttle  1000
  • 杀死monky
代码语言:javascript
复制
$ adb shell
# 进入shell
$ shell
$ kill -9 <monky-pid>

事件百分比

代码语言:javascript
复制
$ adb shell monkey -p com.lemon.lemonban --pct-touch 100 1000

设置全部(100%)为点击事件执行1000次

弱网测试

现在APP网络环境复杂,如果APP没有对网络异常进行兼容处理,那么用户可能在日常使用中遇到APP闪退,ANR(程序无响应),数据丢失等问题

低于2G速度属于弱网,3G也可以划分为弱网,一般WIFI不划入弱网测试范畴

工具:

  • fiddler/charles

代理限速,设置延时

按照Charles抓取手机报文的方式设置代理

  • Network Emulator Toolkit

网卡限速,设置丢包和延时

  • facebook ATC

Linux 工具,需要部署环境,后续设备接入热点即可

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要做APP专项测试
  • 专项纬度
    • 场景测试
      • 兼容性测试
      • 压力稳定性测试
      • 弱网测试
      • 安全测试
    • 性能测试
      • CPU
      • 电量测试
      • 流量测试
      • 启动时间
      • 流畅度专项
      • 内存专项
  • 兼容性测试
    • 方案
    • 压力稳定性测试
    • adb
      • monkey
        • 事件百分比
        • 弱网测试
        相关产品与服务
        手游安全测试
        手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档