本节为大家讲述app的专项测试——客户端性能测试。这个我也做了蛮久的了。在这里修改了一下本篇随笔。

首先我们了解一下什么是客户端的性能测试。性能测试相比大家都已经耳熟能详了,这个app的客户端性能测试估计还是有部分同学不甚了解。

客户端性能测试,主要就是针对app在设备上运行时的内存、CPU、GPU、流量、耗电等进行一系列的测试。主要目的就是为了提升产品的竞争力,同时也可以检测出app的内存泄漏、优化点等问题。当然了,这只是我的个人理解了。

确定测试的介入时机,这个我一般是在上线验收测试之前进行的。倒不是说我这个时机就是对的,实在是资源匮乏,人手不足,只有我一个人进行测试,我只能排在这个时间段进行测试。因为在很多公司,实际上这项测试都只是走走过场,并没有发挥它实际的作用。

我觉得真正的介入时机应该实在开始执行测试的时候,与功能测试并行。因为优化是个漫长的过程,所以越早介入越好,首先能够更加完善的针对这些目标进行测试,其次也能够给予开发人员充足的时间进行优化。

然后就是我们的测试范围,这个测试范围呢,我个人觉得主要还是需要针对产品的核心功能进行。每个产品都有自己的核心功能,用户使用的最频繁的,与用户交互最多的功能模块。

那么我们要检测哪些数据呢?又要如何去监测呢?

我们要检测的数据如下:

Ø内存占用

Ø CPU占用

Ø电量消耗

Ø流量消耗

Ø帧数

使用工具

说到工具,现在工具有很多,大部分还是会使用, emmagee和  GT,还有 Itest等一些工具去监测产品在真机上运行时的各项数据。当然,还有一些是程序嵌入的可视化插件去监测。虽然这些监测的工具,所得到的数据并不是那么精确,但是我们还是能够通过多次对比,使误差最小化,从而得出结论。

不过目前笔者还是习惯使用开发工具去监测这些数据,感觉会比第三方的工具稍微精确一点。安卓的话就用 Android Studio,iOS就用 Xcode。通常监测时长为 2小时左右。

我们来看一下 Android Studio和 Xcode的监测的数据截图

Android Studio

这里并不是 CPU、GPU、内存、网络一起显示的,而是分开显示在不同的栏,需要自己去点击进行选择查看的。它所有的东西都是呈现为这种走势图的看起来很清晰。

Xcode

相比较而言,这里就是集中在一起显示所有的数据了,不过如果看那种走势图的话,也是分开的哦。

结果分析

和服务端的性能测试一样,客户端的性能测试的重点同样是结果的数据分析。

在测试的时候,根据每个操作,每个场景,对应的数据进行深入的分析。我这个操作引发的数据变化,为什么会这样变化?这样的数据变化会不会存在什么隐患?如果我是用户,这个点这样我会是什么感觉?这些数据,会对用户造成什么影响,然后还要根据用户在使用产品时的行为,进行分析,持续进行优化。

可能在大多数的公司都对这个属于一个过场式的东西,笔者自己也很少深入分析过这一块儿。希望有经验的同学,能够分享出来大家一起学习哈。

测试的过程中,可能会遇到一些数据的异常,那么我们就需要去分析出现这些异常的原因了。我曾经遇到过,CPU的占用,一下子飙升甚至超过了  100%。如下图:

那么为什么会出现这种情况呢?我当时请教了大企鹅的测试朋友。他给出的结论是,出现这种情况只有两种原因。其中一个我记不太清楚了,但是我当时的分析结果是因为FPS的卡顿造成的。由于 FPS的卡顿,导致进程短时间内出现卡死的现象,CPU占用会瞬间飙升。

好的,现在我们来说说优化的问题。我所接触到,了解的优化的方法在这里分享给大家:

资源压缩:图片,配置文件等,进行压缩,尽量删除一些不必要的文件。减少安装包包体大小。

分包:由于整包的包体太大,采用分包的方法,使用动态加载的方式,让玩家在初次下载的时候,不会因为看到包体内存望而却步。当然也有缺点,个人感觉缺点就是,动态加载的时候,会有点卡卡的。

当然了,上面的两种方法都是对安装包的优化方式。

还有包括网络协议的选择,连接方式的选择(长连接/短连接),协议和连接方式的选择会直接的影响到我们产品的流量的消耗以及响应时间。

笔者目前接触到的也就是这么多了,欢迎大家留言讨论。不过我感觉,通过客户端的性能测试,应该也是可以去做代码的优化的,当然这只是一个思路,以后有机会再向各位分享。

app专项测试的更多相关文章

  1. app专项测试自动化测试方法思路与实现

    秉着个人意愿打算把python+rf接口自动进行彻底结束再做些其它方面的输出~但事与愿违,但领导目前注重先把专项测试方面完成,借此,先暂停python+rf(主要是与Jenkins集成+导入DB+微信 ...

  2. 移动App专项测试

    移动App测试实战—专项测试 转自:http://www.51testing.com/html/58/n-3713758.html 我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了 ...

  3. APP专项测试使用到的工具

    最近在读<大话APP测试>,我也就是把需要使用的测试点做一个总结,目前是使用的工具进行的整理,后期慢慢把工具使用案例贴出来

  4. Android App专项测试

    https://www.jianshu.com/p/141b84f14505 http://www.cnblogs.com/finer/p/9601140.html 专项 概念 adb命令 App启动 ...

  5. APP专项测试 | 内存及cpu

    命令: adb shell dumpsys meminfo  packagename 关注点: 1.Native/Dalvik 的 Heap 信息 具体在上面的第一行和第二行,它分别给出的是JNI层和 ...

  6. APP专项测试实战1

    首先,如果测试需要用到的话,还是建议一下大家去看下Android-studio的官方文档.文档地址:Documentation  |  Android 开发者  |  Android Develope ...

  7. Android App专项测试(压力测试)

    转载https://blog.csdn.net/qq_29794757/article/details/64160303 转载https://blog.csdn.net/xuejiaodream/ar ...

  8. app专项测试(稳定性测试、安全性测试)

    https://blog.csdn.net/xiaomaoxiao336368/article/details/84887948

  9. APP手工测试01-app专项测试要点-测试、开发环境-敏捷开发

    APP专项测试要点 兼容性测试 安装,卸载,升级 交叉事件 PUSH消息推送测试 性能测试 其他类型 兼容性测试 手机型号 系统版本 安卓 (版本4.4开始兼容) IOS(版本9.x开始兼容) 屏幕尺 ...

随机推荐

  1. C# indexof 注意

  2. appium不能获取webview内容的解决办法

    在用appium对小猿搜题app进行自动化测试时,准备用page_source打印出文章的xml内容 但是发现只能打印出外部结构内容,实际的文章内容却没有显示 截图如下 查询之后,得知需要通过cont ...

  3. 【JavaScript框架封装】在实现一个自己定义类似于JQuery的append()函数的时候遇到的问题及解决方案

    主要问题: 在刚开始创建了这个函数之后,使用的时候,总是会出现一个问题,就是按照正常步骤给一个ID选择器添加子节点的时候正常,但是到了给一个class选择器的元素添加的时候始终只能添加一个. 下面是我 ...

  4. 【LibreOJ 6277】数列分块入门 1 (分块)

    emmm-学下分块~ 区间:数列中连续一段的元素 区间操作:将某个区间[a,b]的所有元素进行某种改动的操作 块:我们将数列划分成若干个不相交的区间,每个区间称为一个块 整块:在一个区间操作时,完整包 ...

  5. Python编程:从入门到实践 - matplotlib篇 - Random Flow

    随机漫游 # random_flow.py 随机漫游 import random class RandomFlow(): """一个生成随机漫游数据的类"&qu ...

  6. python第三周:集合、函数、编码、文件

    1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集 ...

  7. 字符识别Python实现 图片验证码识别

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  8. 微信小程序 Image 图片实现宽度100%,高度自适应

    做法如下: 样式设置宽度100%, .img{ width:100%;} 添加属性 mode="widthFix", <image class="img" ...

  9. C/C++ 文件路径解析

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50782054 首先,看一下C/C++中 ...

  10. C++ "#"的作用和用法

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/48879093 1 #和##的作用和用法 ...