网站建设 风险做双语网站用什么cms系统好
web/
2025/10/2 6:48:50/
文章来源:
网站建设 风险,做双语网站用什么cms系统好,微信平台开发费用,做网站的范本目录
前言#xff1a;
get app UID
获取流量数据
获得启动流量数据
总结 前言#xff1a; Jenkins 是一种开源的持续集成工具#xff0c;可以帮助我们更加方便地进行软件开发和测试工作。通过 API 远程管理 Jenkins 可以帮助我们更加方便地进行 Jenkins 的配置和管理工…目录
前言
get app UID
获取流量数据
获得启动流量数据
总结 前言 Jenkins 是一种开源的持续集成工具可以帮助我们更加方便地进行软件开发和测试工作。通过 API 远程管理 Jenkins 可以帮助我们更加方便地进行 Jenkins 的配置和管理工作并且可以更加灵活地进行 Jenkins 环境的搭建和部署。
本文对 Android App 的启动流量测试进行介绍。这里的启动流量指的是网络流量即 App 在启动时发起网络请求和接收网络响应时传输的网络数据量。
说起流量也许大家的第一反应就是 tcpdump/wireshark 这类网络抓包工具。的确Android 系统确实也支持tcpdump工具通过tcpdump我们可以实现非常精准的流量测试。但tcpdump也有个问题就是它捕捉到的流量是系统层面的我们很难区分捕捉得到的流量数据是否都是当前 apk 产生的。
其实对于特定 apk 的整体流量数据在 Android 系统中都会存储到对应文件中我们完全可以通过读取对应文件来获得当前 apk 的流量信息。
get app UID
与流量相关的状态数据存储在/proc/uid_stat/UID/目录下其中UID表示 apk 对应的 UID。
关于 UID简单地进行下说明。在 Linux 系统中UID 表示的是 User Identifier主要用于表示是哪位用户运行了该程序。但在 Android 系统中由于 Android 系统本身就为单用户系统这时 UID 就被赋予了新的使命主要用于实现数据共享。具体地Android 系统为每个应用都分配了一个 UID不同 apk 的 UID 几乎都是互不相同的而对于不同 UID 的 apk不能共享数据资源。之所以用 “几乎”是因为有时候同一厂家会存在多个产品并且希望能在多个 apk 之间实现数据共享这个时候便可通过在 menifest 配置文件中指定相同的 sharedUserId然后在 Android 系统中安装应用时便会分配相同的 UID。
获取 app UID 的方式有多种最简单的方式应该还是从/data/system/packages.list中读取并通过 apk 的PKGNAME找到对应的 UID。
roothammerhead:/ # cat /data/system/packages.list | grep com.UCMobile.trunk
com.UCMobile.trunk 10084 0 /data/data/com.UCMobile.trunk default 3003,1028,1015在这里10084 即是com.UCMobile.trunk的 UID。
获取流量数据
流量数据分为接收流量tcp_rcv和发送流量tcp_snd两部分这两个状态数值我们可以通过读取/proc/uid_stat/UID目录下的两个文件得到。
shellhammerhead:/ $ cat /proc/uid_stat/10084/tcp_rcv
3446837
shellhammerhead:/ $ cat /proc/uid_stat/10084/tcp_snd
134366通过这种方式我们就可以读取得到指定 apk 在当前时刻的累计流量数值。
获得启动流量数据
有了前面的基础我们要测试启动流量就很好实现了。只需要在启动前采集下累计流量数值然后启动应用完成启动后再采集一次累计流量数值前后两次累计数值的差值便是当次启动耗费的流量数。需要注意的是由于很多时候 apk 在启动后会在系统后台异步加载一些数据资源因此为了保证我们采集到当次启动耗费的全部流量数值我们在启动应用后最好能等待一段时间。
roothammerhead:/ # cat /proc/uid_stat/10084/tcp_snd
15068
roothammerhead:/ # cat /proc/uid_stat/10084/tcp_rcv
98021# start app activity, sleep 10sroothammerhead:/ # cat /proc/uid_stat/10142/tcp_snd
23268
roothammerhead:/ # cat /proc/uid_stat/10142/tcp_rcv
965651采集到前后两次流量数值后即可计算得到当次启动耗费的总流量。
当次启动总流量 (23268 965651) - (15068 98021) 875830 bytes当然这里的启动还分为好几种包括首次安装启动、非首次安装启动、覆盖安装启动等。具体的启动方式可根据实际场景来定但在统计流量的方法方面都是相同的。
总结
本文讲解了 Android App 启动流量测试的一种方法。然而本次介绍的方法也存在一定局限性因为/proc/uid_stat/UID/目录下的tcp_rcv和tcp_snd文件中都只记录了总值如果我们只关注总体的流量数值还好但要是我们希望能测试得到更细化的数据该方法就没法满足我们的测试需求了。
举个例子UC 浏览器国际版在启动后会和美国的服务器进行通讯交互。现在我们想测试 UC 浏览器国际版在启动后与美国服务器的通讯流量。
显然本文中介绍的方法是没法实现上述例子中的测试需求的。那例子中的场景要怎么测呢这就还是得用到tcpdump在下一篇文章中我会再详细进行介绍。 作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品希望能对你带来帮助。
软件测试相关资料自动化测试相关资料技术问题答疑等等
相信能使你更好的进步
点击下方小卡片
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85477.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!