• 流量测试中的小经验


    坑:在项目后期短视频APP某版本的做流量测试时发现流量消耗特别大。

    一、Android App流量测试方法

    1、读取Android系统上的两个文件内容

    proc/uid_stat/{UID}/tcp_snd 
    proc/uid_stat/{UID}/tcp_rcv 
    参数释义: 
    {UID}是每个Android App在安装时分配的唯一编号,用于识别该App。获取UID的方法有: 
    1) 方法一
    ①获取当前App进程的PID 
    ps | grep 包名 
    ②通过PID查找该App对应的UID 
    cat /proc/{PID}/status 
    2)方法二

    cat /data/system/packages.list | grep 包名,注:需要root权限 
    tcp_snd文件中的数据表示发送的数据累计大小,单位是字节(Byte); 
    tcp_rcv文件中的数据表示接收的数据累计大小,单位是字节(Byte)。 
    举例说明如何获取这个数据:

    1)get App UID

    2)获取流量数据

    2、Fiddler代理工具

    1)在手机上设置代理

    2)通过Fiddler代理工具可以看到手机上发出的请求和收到的响应,其中包含了每个请求和响应的流量大小

     

    3、Wireshark工具分析

    1)手机上抓包,具体操作详见Android移动网络如何抓取数据包》

    2)使用Wireshark工具分析,下图是查看单个请求和响应的数据量

     

    4、自动化流量统计之哆啦A梦

    1)打开哆啦A梦→性能监控→开始监控(若没有设置被测App,则可以通过哆啦A梦中的应用管理进行设置);

    2)设计动作对App进行相应的操作;

    3)操作完成后停止监控,文件保存至/sdcard/DoraemonBox/PerformanceTest下。

    哆啦A梦之流量监控原理是直接读取Android系统上的两个文件内容,如图

     

    二、流量测试注意事项

    作为测试人员,越早发现问题越好,所以在产品需求、开发实现上就应该关注流量问题,以下是常见的节省流量方法。

    产品需求上:

    1)针对移动网络给出相应的提示

    比如在搜狗输入法泛灵犀最新需求中,点击详情时会判断当前用户的网络类型,若为移动网络,则给出提示;点击详情跳转后,当前页面中的内容是视频,若为移动网络,点击播放按钮不直接播放,而是先给出提示;

    2)不同的网络类型给出相应的策略

    比如搜狗输入法热词接口,wifi下一天下发一次,移动网络下7天下发一次,该接口包含统计数据的上传、热词和扩展词的下发、数据流通知等。通过判断当前的网络状况,控制数据访问的频率。

    开发实现上:

    1)数据压缩

    减少传输的数据量是一个最基本的节省流量的方法,比如在搜狗输入法emoji后下载中,下发给用户的emoji就是经过压缩后的。

    2)数据缓存

    比如在搜狗输入法中触发泛灵犀图片后 ,会将这些图片暂时缓存至sdcard的某个目录下,等以后再使用相同关键词触发泛灵犀图片时,就不再去拉取相关的数据,直接使用缓存中的数据。

    3)不同数据格式的采用

    作为接口数据返回,JSON格式通常比XML格式要小,在大数据传输上,protobuf格式比JSON格式要小。

    不因未知而恐惧
  • 相关阅读:
    「网络流 24 题」太空飞行计划
    Wannafly挑战赛2D Delete (最短路好题)
    牛客 216 C 小K的疑惑
    Till I Collapse CodeForces
    bzoj 2734 集合悬殊 (状压dp)
    图写成一个类(2)
    写程序的易错点(不定期更新)
    强联通分量之kosaraju算法
    对各种lca算法的理解
    pb_ds的优先队列实现dijkstra
  • 原文地址:https://www.cnblogs.com/kummer9056/p/9702527.html
Copyright © 2020-2023  润新知