Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >请介绍一下如何进行APP专项测试?

请介绍一下如何进行APP专项测试?

作者头像
可可的测试小栈
发布于 2021-04-01 17:57:02
发布于 2021-04-01 17:57:02
3.2K01
代码可运行
举报
文章被收录于专栏:全栈测试全栈测试
运行总次数:1
代码可运行

VOL 225

29

2021-03

今天距2022年277天

这是ITester软件测试小栈第225次推文

在现代生活中,大家都离不开手机,各大APP也占领较大的市场份额,所以面试过程中,面试官也会经常问到APP测试,以下主要分享如何进行APP专项测试。

专项测试主要包含:稳定性测试、内存测试、CPU测试、耗电量测试、流量测试、弱网测试等。

一、稳定性测试

稳定性指APP在手机上长时间运行,功能是否稳定,一般稳定性测试时间是 N*12小时。在工作中一般采用Monkey进行随机测试,检测APP的健壮性。

测试方法如下:

① 跑monkey命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell monkey -p packageName -v -v -v --throttle 500 -s 4 --ignore-crashes --ignore-timeouts --ignore-security-exceptions times |logcat -v time > e:\log\monkeyLog.txt

命令说明:

-p :指点包名,如果要指定多个包名,需多个-p参数;

-v :指定日志的详细程度,取值1-3,三个 -v 详细程度最高;

--throttle :指定用户操作时的时延,单位毫秒;

-s :指定伪随机数生成器的seed值,取值1-10,当seed相同,产生的事件序列也相同;

--ignore-crashes :指应用程序崩溃,monkey依然发送事件,直到事件数完成;

--ignore-timeouts:指应用程序发生ANR,monkey依然发送事件,直到事件数完成;

--ignore-security-exceptions:指应用程序发生许可错误,monkey依然发送事件,直到事件数完成;

times: 执行次数;

|logcat -v time:给monkey命令的日志加上时间;

e:\log\monkeyLog.txt:指定日志保存位置。

日志分析

1)打开日志文件,比如Notepad++。

2)搜索日志:

  • 程序无响应,ANR问题:在日志中搜索"ANR";
  • 崩溃问题:在日志中搜索"CRASH";
  • 其他问题:在日志中搜索"Exception"。

二、内存测试

① adb shell cat /proc/meminfo #查看设备内存使用情况。

② adb shell dumpsys meminfo package_name 查看某个应用内存使用信息。

我们需要分析的是:Native/Dalvik 的 Heap和Total 的 Pss。其中,Native/Dalvik 的 Heap一直增长说明存在内存泄漏了。Total是应用占据的所有内存大小,过大会导致应用被强制杀死。此外Heap Free占用过大,波动大,说明对象被频繁的GC,需要定位一下是哪些对象在被频繁的GC。

③ 一般先记录内存占用情况,然后运行APP,再记录内存占用,对比2次发生的变化。

三、CPU测试

Android 性能指标 CPU 主要关注两点:

  • CPU 总体使用率;
  • 应用程序 CPU 占用率。

指标获取方式:

①使用外部第三方工具来辅助测试,比如腾讯 GT,网易 Emagee 等。

②adb命令,推荐使用。

具体看某一应用占用情况。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell "top -n 1|grep package_name" 

以腾讯新闻为例。

四、耗电量测试

所谓的电量测试,就是测试移动设备电量消耗快慢的一种测试方法。Android的很多特性都比较耗电(如屏幕、GPS、sensor传感器、唤醒机制、CPU、连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。

测试方式:

①使用第三方辅助工具,比如GT。

②使用adb命令:

  1. 重置电池手机数据:adb shell dumpsys batterystats --reset;
  2. 操作应用。
  3. 将采集数据保存到文件:adb shell dumpsys batterystats > batterystats.txt。

五、流量测试

应用的耗流也是用户的一个重要关注点,一是节省用户的使用成本,二是流量优化能带来响应速度的优化,三是能清楚的知道每个场景需消耗的流量,确认是否有能优化的空间。

测试方法:

①使用测试工具 Emmagee或者GT。

②adb命令:

1)获取app pid。

2) 初次的应用流量。

3)操作业务后,再次检测流量,两次结果相差值为对应业务的流量值。

六、弱网测试

目前移动端产品的使用用户所处的网络并非完全流畅的网络环境,因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。毕竟考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。

弱网测试主要进行特殊网络状态下的功能测试并同时关注用户体验,主要包括:弱网功能测试、无网状态测试、网络切换测试、用户体验。

我们可以用fiddler,charles 可以模拟弱网。fiddler模拟弱网之前公众号有写过,这里直接放上文章链接:Fiddler及浏览器开发者工具进行弱网测试

最后补充常见的不同网络环境下的速度,如下表所示:

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

本文分享自 ITester软件测试小栈 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android Monkey-入门与使用
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
wangmcn
2022/07/25
9810
Android Monkey-入门与使用
专项测试--性能分析三
耗电量测试 耗电量指标 待机时间成为关注指标 提示用户体验 通过不同的测试场景,找出APP高耗电的场景并解决 工具:battery-historian 测试步骤 使用batterystats生成(收集)数据 清理耗电量数据 adb shell dumpsys batterystats --reset adb shell dumpsys batterystats --enable full-wake-history 运行测试用例或手工执行 收集数据 adb bugreport > bugreport.t
用户6367961
2022/11/21
5640
专项测试--性能分析三
APP测试之Monkey压力测试(二)
通过APP测试之Monkey测试(一),我们了解了Monkey是什么,Monkey是如何实现对APP进行压力测试,也熟悉了Monkey基本的命令,今天将在之前的基础上进行补充和拓展,一起深入接触并掌握Monkey,这之后,我们还将总结APP测试常见问题,不要错过哦!
可可的测试小栈
2019/10/17
1.9K0
APP测试之Monkey压力测试(一)
Monkey意指猴子,顽皮淘气。所以Monkey测试,顾名思义也就像猴子一样在软件上乱敲按键,猴子什么都不懂,就爱捣乱。Monkey原理也是类似,通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、滑动Trackball、手势输入等操作),来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
王大力测试进阶之路
2019/11/28
2K0
推荐一款好用的APP性能测试工具——Monkey!
Monkey是 Android 中的一个命令行工具,可以运行在模拟器里或实际设备中。
Wu_Candy
2022/07/05
6.3K0
推荐一款好用的APP性能测试工具——Monkey!
Android 测试工具——Monkey简介
在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑。人们常用这只“猴子”来对被测程序进行压力测试,检查和评估被测程序的稳定性。
清风穆云
2021/08/09
1.4K0
【学员干货】App常见性能测试点
(app除了这些性能测试,还有:手机版本号兼容性,屏幕分辨率兼容性,稳定性测试,安全测试等,后续会持续更新… 流量测试同这些一起更新,这里就不在说明了 )
新梦想IT职业教育
2019/10/22
3.4K0
【学员干货】App常见性能测试点
App测试面试题_软件测试算法面试题汇总
https://blog.csdn.net/weixin_45912307/article/details/109501092 1. Web 端测试和 App 端测试有何不同(常见)
全栈程序员站长
2022/09/27
7320
软件测试「 高频面试题 」建议收藏!
1.查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和IO使用率是否达到要求,如果出错率达到了总请求的3%,我们会检查是什么原因导致的,修改好后,重新测试;
测试小兵
2022/06/07
9570
软件测试「 高频面试题 」建议收藏!
Appium+python自动化(十九)- 猴哥失散多年的混血弟弟还是妹妹- Monkey(猴子)参数(超详解)
  前边几篇介绍了Monkey以及Monkey的事件,今天就给小伙伴们介绍和分享一下Monkey的参数。
北京-宏哥
2019/07/16
6670
Appium+python自动化(十九)- 猴哥失散多年的混血弟弟还是妹妹- Monkey(猴子)参数(超详解)
Android APP性能及专项测试
1、运行Monkey进行压力测试: adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50 2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令: adb shell dumpsys meminfo cn.microinvestment.weitou(进程名) 如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径> 3、分析hprof文件 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件 在Android SDK tool里面有个hprof-conv命令: hprof-conv <原HPROF文件路径> <转换后的HPROF路径> hprof-conv a.hprof b.hprof 4、用MAT工具打开转换后的HPROF文件 一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)
测试开发社区
2019/09/20
4K0
Android Monkey初探
Monkey是google提供的一款对Android app进行压力测试工具,基于随机坐标位置,进行点击、滑动、输入等操作.
测试加
2022/03/24
7380
Android Monkey初探
APP移动端测试
1)、系统架构:web端的服务器更新后,客户端会自动同步更新;如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍;
用户10443079
2023/03/21
1.6K0
app测试之Monkey-随机事件测试
Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法,只针对Activity做测试,不能对Service做测试。
找Bug
2022/07/22
9100
app测试之Monkey-随机事件测试
Appium之常用python+adb指令集合
在编写脚本过程中,特别是使用python脚本操作Android设备时,常常需要去调用adb指令来辅助测试,下面就列举下在做自动化测试时经常使用的adb指令
用户6367961
2019/09/29
1.3K0
Monkey基本参数介绍
说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的app进行压力测试,来测试应用的稳定性和健壮性。
霍格沃兹测试开发Muller老师
2022/05/25
7400
测试开发进阶(四十六)
由于移动端的碎片化特征,需要确保App产品能够在不同系统版本,不同屏幕分辨率,不同系统定制ROM也能够有好的用户体验
zx钟
2019/12/19
6230
Monkey稳定性测试初探(二)
稳定性测试,是在一定压力的情况下,对系统或某个模块持续进行长时间的操作(一般遵循7*24小时原则),系统没有出现业务问题、业务异常、内存泄露溢出等性能问题,保证了系统的稳定性,说明稳定性测试是通过的。稳定性测试一般在业务测试、性能测试完成后再进行。
王大力测试进阶之路
2022/03/14
1.4K0
Monkey稳定性测试初探(二)
Monkey测试4——Monkey命令行可用的全部选项
Monkey命令行可用的全部选项 常规 --help 列出简单的用法。 -v 命令行的每一个-v将增加反馈信息的级别。 Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息。 Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。 Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。 日志级别 Level 0 *示例 adbshell monkey -p com.htc.Weather –v 100 说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息 日志级别 Level 1 *示例 adbshell monkey -p com.htc.Weather –v -v 100 说明 提供较为详细的日志,包括每个发送到Activity的事件信息 日志级别 Level 2 *示例 adbshell monkey -p com.htc.Weather –v -v –v 100 说明 最详细的日志,包括了测试中选中/未选中的Activity信息 事件 -s <seed> 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 * 示例: Monkey测试1:adb shellmonkey -p com.htc.Weather –s 10 100 Monkey 测试2:adb shellmonkey -p com.htc.Weather –s 10 100 两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽 然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的; --throttle<milliseconds> 在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被产成。 * 示例:adb shellmonkey -p com.htc.Weather –throttle 3000 100 --pct-touch<percent> 调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)。 * 示例:adb shellmonkey -p com.htc.Weather --pct-touch 10 1000 --pct-motion<percent> 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)。 * 示例:adb shellmonkey -p com.htc.Weather --pct-motion 20 1000 --pct-trackball<percent> 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)。 * 示例:adb shellmonkey -p com.htc.Weather --pct-trackball 30 1000 --pct-nav<percent> 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)。 * 示例:adb shellmonkey -p com.htc.Weather --pct-nav 40 1000 --pct-majornav<percent> 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键) * 示例:adb shellmonkey -p com.htc.Weather --pct-majornav 50 1000 --pct-syskeys<percent> 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)。 * 示例:adb shellmonkey -p com.htc.Weather --pct-syskeys 60 1000 --pct-appswitch<percent> 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。 * 示例:adb shellmonkey -p com.htc.Weather --pct-appswitch 70 1000 --pct-anyevent<percent> 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。* 示例:adb sh
流柯
2018/08/30
1.9K0
Android命令Monkey压力测试,详解
二、Monkey 测试的目的? 该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。
软件测试君
2019/06/03
1.4K0
相关推荐
Android Monkey-入门与使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验