弱网测试环境搭建环境如何搭建?

1236人阅读
app测试(4)
在使用安卓机时,可能又是会经常感受到以下问题:
1、应用后台开着,手机很快没有电了---应用耗电大;
2、首次/非首次启动应用,进入应用特别慢---应用启动慢;
3、使用使用过程中,越来越卡---CPU能力不足/内存泄漏;
4、应用页面卡顿---帧率较低,页面卡顿
所以对安卓要进行一些性能测试,不然将会直接影响用户体验
android应用性能测试通常包括:启动时间、内存、CPU、耗电量、流量、流畅度
& & & 耗电操作主要包括cpu、wifi、流量、传感器,以及应用屏幕wakelock等操作。我们更多的是关注应用本身是否劫持了系统的屏幕wakelock操作,没有及时释放屏幕wakelock,导致耗电。
& & 电量测试监控方法可以简单的从设置--&电池--&使用情况中查看,手机中的每个部件运行时对应的能耗值都好在power_profile.xml文件中,而系统的设置--&电池--&使用情况中,统计的能耗使用情况也是以power_profile.xml的value作为基础参数的。通过命令监控app个部件的使用时长,然后结合设备耗电的基础参数进行加权计算,即可得到app使用的耗电量。至于更详细的耗电量测试,可以专门把耗电这一性能指标拿出来,专项测试。
& & & &流量是运营商的网络访问Internet,运营商替我们的手机转发数据报文,数据报文的总大小(字节数)。这里的数据报文包括手机上下行的报文,由于数据报文采用IP协议传输,运营商计算的流量一般是包含IP的数据报文大小。
两种测试流量的测试方法:
1、tcpdump+wireshark抓包测试法
& & &通过抓包是流量测试直接的方法。在App运行器件,把手机收发的所有报文抓取下来,在计算收发报文总大小,即app消耗的流量。如果我们需要测试某个app消耗 的流量需要禁用其他app的连网权限。
& & &1)限制其他app的连网权限,因为有些app的进程是常驻后台的,即使不运行,也会有网络报文。可以借助一些手机管家软件禁用网络。
& 2)手机上抓包,下载tcpdump,手机链接电脑,获得root权限
3)将tcpdump(forAndroid)上传至android手机上,在命令提示符窗口中输入命令:adbpush &LocalPath of tcpdump& /data/local/tcpdump
4)给tcpdump增加可执行权限
chmod 6755 /data/local/tcpdump
5)启动抓包,使用命令/data/local/tcpdump-v -i any -s 0 -w /sdcard/zhangyu.pcap
& & & &Got后面的数字表示当前抓到的包的数量。如果有变化,表示有网络流量
6)导出抓包结果adb pull /sdcard/zhangyu.pcap &LocalPathof&PcapFile&&
7)用Wireshark打开刚才的抓包结果,点击StatisticsàSummary,流量的数值为Bytes一行的Displayed一栏。
2、使用安卓自身提供的TCP收发长度统计功能
一般APP和后台服务器之间的通信都是基于TCP的,所以我们可以利用此统计来测试我们APP的流量,而且安卓提供的该统计功能是按照APP纬度来统计的,不需要禁止其他app的连网权限。
操作步骤如下:
1)使用ps命令查看所测app的uid,例如贴吧的uid为1=10191
ps |grep com.baidu.tieba
2)进入/proc/uid_stat/1191目录,cat获取当前tcp_snd和tcp_tcv的初始值
3)此时可以开始测试了,测试完成后再次获取tcp_snd和tcp_tcv的值
4)所测时间内的流量计算
发送流量:tcp_snd_new-tcp_snd_old=233=1128917bytes
接收流量:tcp_rcv_new-tcp_rcv_old=6bytes
二、弱网环境
在进行手机应用测试时,经常需要模拟网络不稳定的状态下对测试执行的影响。调研了几款工具,可以通过手动设置数据丢包率,以及网络时延等参数,模拟弱网环境。如Charles、clumsy、netlimite、atc等。
1、几款工具的比较
1)Charles、Fiddler这样的软件只支持短连接,也就是说只有走短连接的接口才生效,长连接的不能使用。
缺点:不支持长连接
2)Atc工具和苹果自带的ios developer (开发者选项)的使用方法是一样的,需要在手机端操作,atc工具需要搭建一系列环境后,手机访问一个ip地址就能看见控制页面,然后修改相应的参数即可。
缺点:不宜操作,每次修改网络场景需要把被测app置于后台,切换到网络模拟界面改参数,然后再切回被测app。影响被测app的操作连贯性。
3) clumsy、netlimite等这类软件易安装,安装在电脑端,手机通过共享网络连接电脑,实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。
4)购买一些仪器,在全公司范围搭建一个弱网环境。
缺点:搭建成本高,需要有专门的技术人员支持。
综合比较以上四类工具,第三类推荐在日常测试过程中使用。下面就拿clumsy举例,介绍一下环境的搭建及使用。
2、clumsy环境搭建及使用
1)环境准备
windows笔记本,clumsy安装文件,共享网络
2)安装clumsy
clumsy免安装程序,下载完成后,直接点击exe可执行文件即可。
下载地址:密码:
3)创建共享网络
a、电脑连接网线,打开网络和共享中心
b、点击本地连接---属性---共享---勾选第一个,并选择一个家庭网络连接(此时本地连接会显示共享的字样)
c、cmd--输入命令(启动cmd,最好用管理者身份启动)
netshwlan set hostednetwork mode=allow ssid=zhangyu1 key=(ssid和key对应共享网络的名称和密码,key不能低于8位)
netshwlan start hostednetwork
至此手机就会搜索到电脑共享的网络,然后连接即可。
3、clumsy参数说明及使用
界面如下:
clumsy 首先根据用户选择的&filter&来拦截指定的网络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy 被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。
当被 filter 的网络数据包被拦截后,你可以选择 clumsy 提供的功能来有目的性的调整网络情况:
1.&&&延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。
2.&&&掉包(Drop),随机丢弃一些数据。
3.&&&节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。
4.&&&重发(Duplicate),随机复制一些数据并与其本身一同发送。
5.&&&乱序(Out of order),打乱数据包发送的顺序。
6.&&&篡改(Tamper),随机修改小部分的包裹内容。
类似模拟网络环境的软件很多,大家可以针对自己的情况选择,不要找环境搭建过于繁琐的工具,简单易用就好。
定位常用软件
在发现问题后,定位分析时,可以借助以下常用软件。
1、traceview使用简介
TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot,可以方便的查看线程的执行情况,某个方法执行时间、调用次数、在总体中的占比等,从而定位性能点。&
使用方法:&
使用Android studio-&Android Device Monitor-&进入DDMS-&点击开始按钮
Case: 在微粉首页上下滑动,滑动过程中等待图片、视频加载完成&。
点击结束按钮出现结果如下(划分为上下两个面板,即Timeline Panel(时间线面板)和Profile Panel(分析面板):
Timeline Panel又可细分为左右两个部分:&
(1)左边显示的是测试数据中所采集的线程信息。&
(2)右边所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。&
(3)可以在时间线中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。&
Profile Panel(分析面板)
按调用次数由高到低排列结果如下图
按照占用CPU时间从高到低排列结果如下图:
2、Systrace使用简介
Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android关键子系统(如surfaceflinger、WindowManagerService等Framework部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。&
使用方法:&
使用Android studio-&Android Device Monitor
进入DDMS-&打开微粉APP-&点击开始systrace
设置参数-&点击OK
case:&在微粉首页滑动列表,滑动过程中需等待图片视频加载完成&
在chrome地址栏中输入chrome://tracing 点击load打开trace.html文件
通过工具抓取的数据用浏览器打开后显示如下:
查看Frames这一行,可以看到这里展示了被绘制出来的每一帧,并且用绿、黄、红三颜色来区分它们在绘制时的性能&
选一个红色帧在底部给出Alter信息:&
展开“Inflation during ListViewrecycling”这条警告(警告部分的总耗时155毫秒,远高于了我们对保障60fps所需的16毫秒绘制时间):&
选择这一帧中最长的一块,对其进行进一步分析整个区块耗时98毫秒,而在这之中CPU只消耗了65毫秒的时间去运算
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:16806次
排名:千里之外
原创:15篇
转载:31篇
(4)(14)(1)(13)(4)(10)&>&&>&网络技术&>&网络监控&>&弱网环境搭建教程
弱网环境搭建教程
上传大小:203KB
在进行手机应用测试时,经常需要模拟网络不稳定的状态下对测试执行的影响。这篇文档主要是有关如何搭建一个网络环境,通过手动设置数据丢包率,以及网络时延等做个详细的说明,希望对大家有所帮助
综合评分:4.4(5位用户评分)
所需积分:
下载个数:100
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有3条
虽然和我要的不一样,但是还是给了我些思路
虽然没有安装LZ的文档搭建环境,但是还是受到了启发,赞一个
楼主,感谢您的分享,但是squid.conf的配置看不到啊,能不能讲解一下这个配置,主要就是卡在这了
审核通过送C币
创建者:wang_zhenwei
SendCloud Python Java 发送各类型邮件的代码示例
创建者:sendcloud
网络技术专辑
创建者:kingpeter2009
上传者其他资源上传者专辑
Linux入门基础教程
手机软件测试流程(超完整)
网络技术热门标签
VIP会员动态
前端开发重难点
17年软考最新真题及解析
物联网全栈开发专题
二十大技术领域优质资源
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&vip年卡&4000万程序员的必选
弱网环境搭建教程
会员到期时间:剩余下载个数:
请勿使用迅雷下载
积分不足!
资源所需积分
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分
当前拥有积分
VIP年卡全年1200个资源免积分下载
请勿使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
zcsjavastudy
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:我在测试移动弱网时踩过的坑
什么是弱网测试
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。
& & & & & & & & & & & & & & & & & & & & & & & & & & & & &
从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。
为何要进行弱网测试
我当前所在项目的产品是一款适配于低资源环境的医疗IT系统,目前主要是在坦桑尼亚地区使用。根据资料显示,在坦桑尼亚等东非国家,普遍使用的都是2G网络,覆盖率达到40%以上,3G网络的覆盖都非常少,并且稳定性较差。由此,对于当前的App应用交付要求即至少在弱网以及无网状态下能正常运行。
如何做弱网测试
弱网环境测试主要依赖于弱网环境的模拟。环境搭建方式一般有两种:软件方式和硬件方式。软件方式的成本低,主要就是通过模拟网络参数来配置弱网环境,通常来讲可以达到测试目的.一般可通过热点共享设置,或者第三方,例如 :&,. 在各类网络软件中,主要就是对带宽、丢包、延时等进行模拟弱网环境。如果要求更接近弱网环境,比如现在很多的专项测试,会更倾向于通过硬件方式来协助测试,但这种方式相对会麻烦很多,一般会由网维协助搭建,例如。当然,对于有些无法模拟的情况,只能靠人工移动到例如电梯、地铁等信号比较弱的地方。
弱网测试时碰到的问题和解决方案
1、现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。
原因:数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复
解决方案 :通过事务处理数据下载逻辑,下载失败后,应用本地数据库进行数据回滚。
2、现象:用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据
原因:数据上传过程中, 由于失败重传机制,会出现连续两次写操作,并且未做唯一识别处理
解决方案 :根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash键,标记记录唯一性,即数据写入时,检查hash键是否存在,如果已经存在,当前重复数据丢弃。
3、现象:在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示。
原因:在弱网环境下的连接超时后,按照强网业务逻辑处理,导致返回超时异常。
解决方案 : 弱网连接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取应用本地用户信息进行登录。
4、现象:在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退。
原因:弱网环境下数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。
解决方案 :健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转。
5、现象:弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作,当用户点击控件时,出现应用闪退现象;
原因:没有对数据加载流程进行判断,直接暴露控件可控,当出现依赖数据的控件操作时,没有在数据返回前做兼容处理。
解决方案 :在数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放。
6、现象:在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖
原因:中间的请求返回较慢,显示最终的结果后,之前请求返回的数据应不做处理。
解决方案 :对异步请求未完成的任务进行cancel.
当然,出现以上问题的根本因素并不是弱网,在我们平时的PC应用中一样会遇到,但是这些问题在移动弱网环境下会表现的更突出。所以综上所述,从功能、性能、稳定、异常处理等几个维度来归纳场景特性,弱网测试主要集中在如下场景:
文章来源:/article/900
本文已收录于以下专栏:
相关文章推荐
很多朋友私信问我对机器人和人工智能感兴趣,该怎么展开学习。最近稍微有点空,我写写我的看法。
两年前,我在知乎回答如何定义「机器人」? - YY硕的回答中试图给机器人做出一个比较仔细的...
为什么有些大公司技术弱爆了?
楼主自述经历:
今年年初,到一家互联网公司实习,该公司是国内行业龙头。
不过技术和管理方面,却弱爆了。
那里的程序员,每天都在看邮件,查问题工单。...
AI时代,机器学习该如何入门?
对于机器学习,很多人的观点是:机器学习技术是今后所有技术人员都绕不过的一个门槛。 那么,普通程序员该学习机器学作为一名对机器学习心有向往的程序员,我该以什么样的姿势开始呢?
前言前段时间由于公司的一款弱联网游戏急着上线,没能及时分享,现在基本做的差不多,剩下的就是测试阶段了(本来说元旦来分享一下服务器技术的)。公司的这款游戏已经上线一年多了,在我来之前一直都是单机版本,由...
码农周刊的类别分的比较大,不易于后期查阅,所以我把每期的内容按语言或技术进行了分类整理。
码农周刊官方网址 http://weekly.manong.io/
一些不熟悉的领域分类可能不准确,请见谅...
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)1143人阅读
架构设计(2)
用户使用app产品的过程中,不可能永远都处在wifi满格的情况下。在地铁里,巴士上,甚至是电梯,车库等等的场景里,我们的app会如何表现,这同样是我们的关注的重点。
弱网测试工具有如下几种:
1. Fiddler
2. Network Emulator for Windows Toolkit(NEWT)
3. Augmented Traffic Control(ATC)
Fiddler是一个抓包工具,显然不是专门用来进行弱网测试的,术业有专攻,我希望有一个专门进行弱网测试并持续维护的工具。
NEWT和ATC分别是微软和Facebook推出的网络模拟工具。其中,ATC是一个搭建在linux上的一个web服务,搭建一套之后可以给多人使用,而且是开源的。于是,我毫不犹豫的选择了ATC。
ATC项目地址:
安装方式可参考:
安装实践过程以及碰到的问题:
1)驱动问题
首先,你得确认自己的无线网卡支持热点功能,安装驱动,并且保证驱动不冲突
比如:如果有wl的相关驱动,关闭
$ lsmod | grep wl
$ sudo modprobe -r wl
$ sudo modprobe -r cfg80211
然后加载b43驱动
$ sudo modprobe b43
2)创建热点问题
前面的推荐文章中介绍了热点创建方式,但还是太麻烦了,这里使用了进行热点的创建。
首先检查 有线宽带连接接口
$ ifconfig
可以看到这里有个p3p1是有线连接,然后查看无限连接接口
$ iwconfig
这里的是wlan2
之后建立wifi热点
$ sudo create_ap
wlan2 p3p1 mouni_test
这里我建议将启动任务放到后台
$ sudo create_ap
wlan2 p3p1 mouni_test
& /tmp/create_ap_log.file 2&&1 &
3)启动FACEBOOK ATC
由于这里使用进行部署,所以启动ATC的方式如下:
$ docker run -d --privileged --net=host -e ATCD_LAN=wlan2 -e ATCD_WAN=p3p1 atcd/atc
ATC搭建是个比较麻烦的事,使用起来却极其方便,推荐文章中已有相关介绍。只需要设置相关的网络,测试人员接入测试即可,多人互不干扰。
下面是网络设置的参考:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:31166次
排名:千里之外
原创:25篇
(1)(1)(12)(16)

我要回帖

更多关于 mac 搭建ipv6网络环境 的文章

 

随机推荐