移动性能测试 Android 性能测试初探 (六)

卡斯 · 2014年02月22日 · 最后由 努力努力再努力 回复于 2020年05月29日 · 5220 次阅读

书接前文 Android 性能测试初探之功耗(五)

本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了

流量测试,同样需要引入几个名词

  • 中等负荷:应用正常操作
  • 高负荷:应用极限操作

流量测试包括以下测试项:

  • 应用首次启动流量提示
  • 应用后台连续运行 2 小时的流量值
  • 应用高负荷运行的流量峰值
  • 应用中等负荷运行时的流量均值

流量测试一般都是用软件来进行的,这里我们一般分为 2 类:

  1. 采用市场提供的第三方工具来进行测试,如流量宝之类的
  2. 自研工具进行测试

自研工具进行测试一般包含 2 类方法,

  1. 通过 tcpdump 抓包,再通过 wireshake 直接读取包信息来获得流量
  2. 首先获得被测应用的 uid 信息,可以通过 adb shell dumpsys package 来获取 然后在未操作应用之前,我们可以通过查看 adb shell cat /proc/uid_stat/uid/tcp_rcv adb shell cat /proc/uid_stat/uid/tcp_snd 获取到应用的起始的接收及发送的流量,然后我们再操作应用,再次通过上述 2 条命令可以获取到应用的结束的接收及发送的流量,通过相减及得到应用的整体流量消耗

好了,流量测试就说到这里,android 性能测试初探之旅就到此结束了,下回我们将探讨 android 安全测试,预知下文,敬请期待

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 19 条回复 时间 点赞

必须支持,让我学习了很多,非常感谢,接下来要实际操作一下。
期待安全测试的分享

对于 android4.3 以上,api-18 以后的,adb shell cat /proc/uid_stat/uid/ 这个路径找不到了,请问朋友有过研究不

@oscar 4.3 以后的这个路径还是存在的

#5 楼 @kasi 我的这个没有找到啊,我用的红米 note android4.4 的系统,kasi 你这个是啥机器

@oscar 华为 P7 小米的系统没接触过,底层改太多了

#7 楼 @kasi 嗯,好我有空搞一下 华为的😄

卡神。这个极限操作是咋操作的?不太懂呢

卡斯 #11 · 2015年02月11日 Author

这个一般是自动化来模拟的。区分的是点击的间隔时间,模拟人手动点击的最快速度

#7 楼 @kasi 最近有空研究了一下,发现从/proc/net/xt_qtaguid/stats 获取网络流量统计会更全面一些,兼容的 android 系统更多一些,/proc/uid_stat/uid/tcp_rcv 貌似只是 tcp 的,参考http://stackoverflow.com/questions/12904809/tracking-an-applications-network-statistics-netstats-using-adb

卡斯 #12 · 2015年02月27日 Author

嗯 那个是统计了 udp 的流量了

说一下用户体验,为什么不是 “书接下文”,而是 “书接前文”,这样看起来很费劲,知道不?😏

有个疑问:我们知道 tcp、udp 都是属于传输层的协议,http 属于应用层的协议,而在实际抓包分析 场景过程中一个点击动作常常会包含 tcp 与 http 请求,那这里 http 请求部分的消耗不用统计么,如果 http 这部分需要考虑 那全篇以流量来介绍户不会给像我这样的小白造成误解。我第一次看这篇的时候就觉得写得很好,只是发现后面东西看多了疑问就多了,希望有答案的过客或者楼主不吝指教

想咨询一下,流量测试有没有参考值?大概在什么样的范围内算是正常呢

卡神,自研工具第一条打错了字了。:通过 tcpdump 抓包

卡斯 #17 · 2016年03月09日 Author

@t880216t 细心 已改

#14 楼 @blackstone 我也想知道答案?有懂得的回复下吗

恒温 [该话题已被删除] 中提及了此贴 07月18日 15:54
恒温 《Android 性能测试初探》合集 中提及了此贴 11月29日 15:15
卡斯 回复

http 协议不涉及到流量吧,一般针对是 tcp 或者 udp 吧

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册