移动应用测试篇(4)——App测试技术(2)
APP专项测试——流量测试
移动互联产品给用户带来了很大的便利,但是在未来的一段时间内,移动网络的带宽还是比较有限,毕竟流量也是用户要付费的。这使得用户会关心他使用的App使用了多少流量,因为这直接关系到用户的资费账单。一些不好的App设计,或者缺陷,比如频繁在后台联网去服务端获取信息等,这些都会导致用户卸载App,或者引起投诉。因此进行软件的流量测试是很有必要的。
接下来我们就讨论如何针对Android和ios平台进行流量测试。
以下讲述3种流量测试,方法:手机上抓包、基于WiFi代理的fiddler工具抓包、Android自带的抓包方式。
1:手机上抓包 tcpdump+wireshark(参考adt结合使用)
在后台系统开发和测试中,借助工具抓取网络包(简称:抓包)来进行网络层的分析师一种常用的技术手段,常常使用的抓包工具有Wireshark和linux下的tcpdump。
由于Android系统是基于Linux的,所以可以使用tcpdump这个工具,但有一点特殊要求是手机一定要获取ROOT权限,下面就来详细给大家讲解一下如何使用Android的tcpdump获取流量信息。
前要:先使用adt安装android,然后打开虚拟机,详情参考资料(android开发
环境的搭建)
步骤1::先下载Android版tcpdump文件(
https://www.androidtcpdump.com/android-tcpdump/downloads)
步骤2::将tcpdump通过adb shell命令上传到Android虚拟机上去:
adb push tcpdump /data/local/tcpdump (上传数据包)
adb shell chmod 6755 /data/local/tcpdump (权限)设置
Tcpdump
• 语法:adb push [ tcpdump的window绝对路径] [/data/local/tcpdump]
adb shell chmod +[权限值] [data/local/tcpdump]
• 步骤3:使用tcpdump抓取流量数据包
adb shell—进入adb shell
su root–切换到root账户
/data/local/tcpdump -s 0 -w /data/capture.pcap -v
data/local/tcpdump -s 0 -w /data/capture.pcap -v
详解:
-s 0:抓取数据包时默认抓取长度为68字节。加上 –s 0表示抓取完整的数据包信息
-w /data/capture.pcap:表示把抓取的数据包文件保存在Android虚拟机的/data 文件夹下,
-v:表示在命令执行中显示当前的包的数量
• 步骤4:使用adb pull /data/capture.pcap下载文件到windows系统下
• 步骤5:使用wireshark打开capture.pcap数据包文件,并分析数据
• 步骤6:wireshark打开刚刚的抓包文件,使用filte做过滤,根据wireshark显示过滤器的语法,假设APP对应的目标服务器的地址是(121.14.76.22)
• Filter的语法:
“入流量” ip.src == 121.14.76.22
“出流量” ip.dst == 121.14.76.22
• 统计总流量的方法Statistics菜单:
- 简单查看流量统计可以看第一个Capture File Properties
file:显示总体信息
time:显示抓取第一个、最后一个的时间和整体时间间隔
capture:OS名称、抓包的接口
interfaces:所有抓到流量与接口的详细情况
statistics:提供各种详细的数据
• 2:使用fiddler工具分析网络流量(ios/android通用流量测试方法)
步骤1:被测手机和电脑要在同一局域网或者电脑开热点,手机连接在手机上设置wifi代理为:手动.代理主机填写window电脑的ip代理端口填写:8888
• 查看本机电脑ip
• 如果是和手机在同一局域网:
• 无线局域网适配器WLAN的ip
• 如果是电脑端开的热点:
• 无线局域网适配器本地连接*数字的ip
• 步骤2::设置fiddler工具,如下图所示:
在tools下的fiddler options的https栏勾选3个选项
• 在 connection上全部勾选上,并默认端口为8888
• 注意设置好之后最好重启fiddler
• 抓取APP上的HTTPS请求
• 1.如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时候手机就需要下载证书了。
• 2.打开手机浏览器输入:http://192.168.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址。
• 3.出现如下画面,点箭头所指的位置,点击安装就可以了。
• 步骤3:下面使用fiddler抓取的手机打开微博时请求和响应时的流量大小
• 3:通过系统自带的统计功能统计流量
• Android使用ADB通过uid可以查询到流量统计
• 具体方法:proc/Uid_stat/{uid}/tcp_snd
• proc/Uid_stat/{uid}/tcp_rcd’
• 限制条件:
• 1:要在真机环境下
• 2:真机要获取root权限
2、对应的情况是,在Mac上可以使用Charles作为代理,以及请求、响应显示的工具,同学们可以自行在课下研究。除了使用抓包工具进行流量的获取之外,还可以使用其他方法获取网络流量,比如App内部通过代码统计接口的数据量等,由于此部分的讲解过于复杂,这些测试方法将由同学们在
今后的工作中自己去逐步深入的了解和学习。
常见的流量节省方法
1:数据在不影响体验和功能下进行压缩,比如网页js文件压缩、图片压缩。
2:不同数据格式的采用,比如采用json格式作为接口返回格式通常比XML格式要小。
3:优化数据的下载,比如采取分屏加载的方式来减少流量的损耗。
4:本地缓存, 可以将客户端获取的一些图片、js文件都暂时的缓存起来,减少网络数 据加载。
5:针对不同网络类型设计不同的策略,比如2g/3g网络手动下载图片等方法来优化网络。
• 3.流量测试应该注意的测试项:
1:应用首次启动的流量提示
2:应用后台连续运行2小时的流量值
3:应用在运行极限的平均流量值
4:针对场景法涉及的应用主流程方面的测试
5:在首次登陆时的平均值
(未完待续…)
移动应用测试篇(4)——App测试技术(2)相关推荐
- ios和android测试面试题目,App测试面试题总结
前言 现在面试个测试岗位,都是要求全能的,web.接口.app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结 ...
- 测试你适合的发型软件叫什么,有没有测试发型的app 测试自己适合什么发型
有没有测试发型的app 测试自己适合什么发型以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! [导读]:很多妹子剪头发时都 ...
- 移动app测试的多样性_web测试与移动App测试的常见测试要点
手机APP项目测试点(内容)总结 对于手机项目(应用软件),主要是进行系统测试. 而针对手机应用软件的系统测试,我们通常从如下几个角度开展测试工作: 功能模块测试 交叉事件测试 性能测试 安全测试 容 ...
- 【Monkey测试】手机app测试性能测试,Monkey测试详解(全)
目录:导读 前言 一.Monkey工具 二.Monkey的优劣 三.Monkey 命令 四.Monkey结果分析 五.Monkey详细 六.Monkey用来做什么 七.Monkey程序介绍 八.Mon ...
- 移动应用测试篇(5)——APP测试技术(3)
App测试专项--耗电测试 1:基于硬件设备的方法 这个方法的基本做法就是将手机的电池拿掉,并将电量表串接在手机和外部电源之间.这样手机的供电就会经过电量表,可以获得比较准确的电量数据(缺点:整机测试 ...
- 软件测试知识点和面试题--app测试篇
软件测试知识点和面试题--接口测试篇 软件测试知识点和面试题--性能测试篇 软件测试知识点和面试题--手工测试篇(功能测试) APP发布流程 内部发布平台蒲公英.Testlink等发布步骤1.开发打包 ...
- APP测试面试题汇总(基础篇、进阶篇)
一.基础篇 1.请介绍一下,APP测试流程? APP测试流程与web测试流程类似,分为如下七个阶段: 1.根据需求说明书编写测试计划: 2.制定测试方案,主要是测试任务.测试人员和测试时间的分配: 3 ...
- 【面试-八股文】万字app测试 面试题,助你吊打面试官系列
大家好,我是温大大. 最近温大大的读者们问我有没有app相关的面试题, 作为「平易近人」的大大怎么能忍心说没有呢, 这不继续爆肝 输出app测试工程师专项面试题, 本篇从:app测试基础.app 测试 ...
- app测试移动应用测试 (功能测试)适合0基础学习
文章目录 app测试移动应用测试 (功能测试)0基础 一.背景介绍 app生命周期图 移动应用与传统PC应用的区别 二.App项目流程 市场分析 需求调研 产品制造 交互设计 产品开发 系统测试 产品 ...
- APP测试面试题汇总基础+进阶
目录 一.基础篇 1.请介绍一下,APP测试流程? 2.APP测试需要提前准备哪些测试资源? 3.APP测试和Web测试的区别? 1.系统结构方面 2.性能方面 3.兼容性方面 4.相对于 Wed 项 ...
最新文章
- include,require,include_once,require_once区别
- android打开项目更换版本,android1.6项目,换成其他包的方法,及修改默认启动虚拟机的版本...
- 软件测试工程师笔试试题
- MySQL索引使用详解
- java 监听本地端口_Java-在本地端口上侦听RTP数据包
- JS数据结构与算法——选择排序(把小的数字依次往前放)
- neo4j python
- phpredis报错信息:protocol error, got ‘o‘ as reply type byte解决方案
- mysql udf禁用_如何禁用 mysql 的 udf 功能
- pcre和正则表达式的误点
- python解析器打包_打包发布Python模块的方法详解
- 绝大部分投资者没资格谈心态
- 97. PATH_SEPARATOR 和 DIRECTORY_SEPARATOR
- C语言编写游戏的程序教程,用C语言写贪吃蛇游戏图文教程
- 数学分析 极限(第2,3章)
- RabbitMQ实现即时通讯-MQTT协议
- PLSQL developer下载、安装、详细教程
- android usb恢复,安卓数据恢复常见问题汇总
- Android之 Camera相机使用
- IT 攻城狮必备的十大算法思想
热门文章
- Mendeley的安装
- 易软简易门诊系统系统功能分析
- 混合整数线性规划问题 Matlab
- zed相机的基本使用
- 【重要】kubernetes二进制部署单master节点
- 通用对账系统介绍与设计(上)
- 记第一次举办CTF比赛
- 关于《竹林蹊径 深入浅出Windows驱动开发》第一个例子在Win7下蓝屏
- 华南理工大学计算机应用技术如何,余志文(华南理工大学计算机学院教授、博导)_百度百科...
- c语言混沌序列,混沌时间序列的C-C法计算太阳黑子月度数据的tau和tw与书上的不同,咋么办?...