优化在路上 | 百万级WiFi认证页面体验调优

版权声明:此文章转载自听云微信公众号

如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com

相信所有人在面对迈外迪或者其它商业WiFi的时候,都会面临这样的问题,就是在一个地方看到WIFI点选了却不一定能成功连接,连接上又不一定能获得IP,获得IP后无法进行认证,认证了不一定能打开网页,打开网页可能加载又很慢,这是一个长期需要解决的问题。迈外迪从2007年开始做商用WiFi,在还没有智能手机的时候给咖啡厅提供商业WiFi服务,解决笔记本上网的问题。而从07年到现在这个问题存在了9年,也一直没有找到非常合适的解决方法。


所有人对这个认证页都不陌生

页面上显示一个框输入手机号,另外一个框输入验证码,下面点击框是连接WiFi。用户会发现使用时有大量的异常问题出现,这个异常问题与一般的页面加载不一样,以前用户面对的是一个直接可以打开的网页,但是对于迈外迪来说,由于是自己提供设备,需要对从上网设备到链路到Server端以及前端的部分整套体验负责。某个商户反映用户打开慢,可能是运营商的问题,也可能是硬件设备的问题。如果遇到这样的问题就需要从上到下解决整个链条上的问题。

在做移动事业部的时候想,第一:能否从用户端解决联网的问题

0052.png

如果用户端有一个APP,我们在小米底层做了植入对这些数据进行统计,比如在星巴克下午6点钟的加载特别慢,在WiFi排列表的时候就不会排在前几位。第二:输入手机号发送验证码的过程,比如先监听一个用户登录一个页面的过程,把整个登录过程录制下来放到服务器,当有第二个用户在同样的地点登录这个网页的时候,可以把上一个用户登录的过程复现出来。迈外迪在这方面做了一些工作,也开发了一些解决方案来解决这样的问题。

之前,迈外迪尝试过从路由器端解决用户联网的问题,最后发现以这样的方式很大程度上依赖于有多少新用户量,或者说连接多少用户,现在连接小米、TCL这样的厂商,在底层抓数据时会发现即便在这方面做很多努力,再往下做用户体验的增值还是有限的,之后就需要从提供服务的角度去改善。

一个好的WiFi使用环节跟硬件端、前端、Server端、微信、运营商链路、移动端渲染速度都有关我们监测微信WiFi每30—40次就有一次报错,而且每次报错都不一样。公司附近某个星巴克的WiFi每天中午12点就会特别慢,查看的时候发现整个设备和硬件没有问题,那个时候用的是联通运营商的网络,最后发现是带宽在中午12点会出现严重的延时问题。

接下来介绍一些Portal健康相关工具:

1、Android/iOS自动化测试工具这个工具达到的目标是放一个端在用户那里,不停地模拟监测每一个环节所消耗的时间。

在天坛医院迈外迪分为五个渠道,医院是一部分,商圈一部分。跟本地硬件、APP端相关的是平均WiFi连接成功时间和302响应时间,从连接上到请求服务器之间的时间差距越长,说明本地响应时间越慢。商圈302响应时间是700ms,到医院的响应时间就是2000ms。在天坛医院CSS平均加载时间是3400ms,JS平均加载的时间是3800ms。

做一个天坛和咖啡厅之间的比较,在本地硬件链入的情况下,听云对这个页面做模拟访问,发现平均延时时长天坛医院为1800ms,其它的都在2000ms以上,就前端性能而言,天坛医院要好于浙江省的咖啡厅。

0053.png

之后我们对本地进行了优化,基准测试模拟了1000多次的访问,优化之前响应是128ms,合并CSS以后是102ms,合并压缩JS以后基本上可以到95ms的水平。现在发现经过基本的调整之后,性能提升25%,即33ms。

优化前和优化后进行对比会发现实际加载确实比以前快。迈外迪不仅能提供Portal页,同时也提供设备,未来静态固化的资源可以直接放到APP上更好的做优化。

场所部署方面,开发环境:远端的问题无法实现,曾经某个月接到客户的投诉很多,其中60%是无法在开发环境复现的,需要对复现环境做一个了解。对实际开发环境和使用环境之间的差异做了解。

事故频出环境:迈外迪会从投诉超过2次或者2次以上的场所入手,如果是在北、上、广总公司和分公司所在地区,会部署一些东西使投诉2次或者2次以上的老问题通过重启路由器就能解决。

竞品WiFi:去年做了相关工作实现了通过模拟的方式从竞品登录,看一下竞品WiFi的指标,对于下一步融资是有帮助的,可以看到在行业里究竟处于什么样的水平。

2、听云主动式监测我们在全国很多省做了监测,平均的访问时间是3000ms左右,把4—5个竞品也都放进来归纳,可以明显看到迈外迪在行业内外部页面加载中所处的水平。

全国190多家医院都会用迈外迪商业WiFi,每天的样本量是3万UV,图上反映的问题是访问的人数越少,页面加载的时间越长,而这是不合理的,需要进一步的查找原因,接下来会和听云进一步合作基于场所去做集合。每个医院都有不一样的环境,会做结合之后进行比较。

0054.png

下图是针对广西医院的问题定位,访问速度显示为50几秒,普遍来说医院这一部分反馈比较多,认为Portal页弹的非常慢,时间基本上在7秒或者是7秒以上。这是需要进行优化的。    

0055.png

接下来是AJAX问题导致手机验证请求失败的问题,5月25号上午11:30—11:35时,会有150个用户在验证手机号时出现问题,比如验证码输入对了,但实际反馈结果是认为手机号不匹配。

0056.png

部门每天会对APP本地端收到的报错进行归类,针对问题进行解决。实际上整套Portal健康体系中,用Android自动化去模拟整个用户体验流程,会出现一个问题在于测试规模小,对设备、物理布设有依赖,不可能将所有的点全部布上。

而被动式更多的看到的是Portal加载,测试规模涉及到大范围而且是真实的用户场景。实际上可观因素和关联因素并不是对称的,只能看到Portal加载过程中出现的问题,但是真正开始连WiFi的时间与从连WiFi到302的时间无法测量,所以被动式比较适合上线后做监测。迈外迪希望通过这些优化可以形成一整套完整的Portal健康体系,将整个行业的遇到的问题给予更好的解决。

想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

关于作者

许小午

不是一个没有故事的女同学

我要评论

评论请先登录,或注册