网易严选的wkwebview测试之路

本文来自网易云社区

作者:孙娇

UIWebView是苹果继承于UIView封装的一个加载web内容的类,它可以加载任何远端的web数据展示在你的页面上,你可以像浏览器一样前进后退刷新等操作。不过苹果在iOS8以后推出了WKWebView来加载Web。UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView是将会逐步取代笨重的UIWebView。且UIWebView存在占用过多内存,js执行效率低等问题。而WKWebView网页加载速度大有提升,占用更少内存。

WKWebView相比于UIWebView

  • WKWebView的内存远远没有UIWebView的开销大,没有缓存
  • 拥有高达60FPS滚动刷新率及内置手势
  • 支持了更多的HTML5特性
  • 高效的app和web信息交换通道
  • 允许JavaScript的Nitro库加载并使用,UIWebView中限制了
  • 提供加载网页进度的属性(estimatedProgress)
  • 将UIWebViewDelegate与UIWebView拆分成了14类与3个协议(以前很多不方便实现的功能得以实现:官方文档说明)

基于以上种种优势,严选APP在年后的第一个版本里实现了UIwebview到wkwebview的大步跨越,作为一名客户端的测试人员,我更加关注的主要是wkwebview的各大特性背后带来的测试点,以下就从测试的视角分析一下替换wkwebview之后,测试中遇到比较多的问题:

1、首先就是cookie的问题

以前UIWebView会自动去NSHTTPCookieStorage中读取cookie,但是WKWebView并不会去读取,因此导致cookie丢失以及一系列问题,在测试的过程中我们发现在一个活动页面触发了登录之后,返回该页面并没有同步到登录态的信息

从上图可以看出,在app进行登录后,福利社的webview并没有同步获取相应的登录态,究其原因,主要原因是:WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie(当然是开发解释给我听的),找到问题所在修改之后的表现:

表现完美!

2、wkwebview的本地html页面加载失败

严选app内置了一份网络解决方案,如若检测到无网络状态可以查看这个本地页面进行网络的配置(主要是iOS10系统刚推出的时候,需要用户开启app启动网络的权限才能使用的问题),但是替换了wkwebview之后,无网络状态下本地的html网页无法加载,结果:

开发大大排查之后发现是wkwebview中加载的方法变了(wkwebview不支持用loadRequest的方法加载本地的静态HTML),要替换不同的方法来加载,修复之后的效果

3、wkwebview页面样式问题

在测试过程中,替换wkwebview之后,很多APP内的H5页面样式出现了兼容的问题,尤其是针对iPhone X的适配方面,对此我们只能全局查看各种H5页面,一一检查页面是否错乱,大部分页面的问题都是页面底部或者导航栏异常。

在测试的过程中我们遇到最多的问题就是上述三个问题,如果各位还有遇到其他的问题,欢迎补充。

除了测试中遇到的问题,测试完成之后,我们对wkwebview的性能也做了简单的统计,主要是为了对比wkwebview相比较于UIwebview的优势在哪里,我们针对两种不同的webview,在APP内进行一些正常用户行为的操作(浏览首页及其他页面,查看商品详情及评论图片,浏览活动及专题页面,登录查看购物车及下单等等),对比统计了内存的消耗占比。主要操作了三种机型(5s,7,6splus),三种操作系统(9,10,11)。

从上图可以明显的看出来,wk在内存消耗方面还是有显著的提升的,尤其是针对性能较差的机器,如ios9系统的5s。

最后,WKWebView相较于UIWebView在整体上有较大的提升,满足OS上面使用同一套控件的功能,同时对整个内存的开销以及滚动刷新率和JS交互做了优化的处理。依据职责单一的原则,拆分成了三个协议去实现WebView的响应,解耦了JS交互和加载进度的响应处理。但是他有一个最致命的缺陷,就是WKWebView的请求不能被NSURLProtocol截获。而UIwebview可以让app对于H5容器使用NSURLProtocol技术将H5进行离线包的处理,H5的图片和Native的图片公用一套缓存,因此WKWebView是没有做缓存处理的,对网页需要缓存的加载性能要求没那么高的还是可以考虑UIWebView。

最最后,感谢开发大大的耐心指导及细心讲解webview背后的故事。

网易云免费体验馆,0成本体验20+款云产品!

更多网易研发、产品、运营经验分享请访问网易云社区

相关文章:
【推荐】 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践
【推荐】 Dubbo与HadoopRPC的区别
【推荐】 基于开源,强于开源,轻舟微服务解决方案深度解读

原文地址:https://www.cnblogs.com/zyfd/p/9680946.html

时间: 2024-10-10 02:55:54

网易严选的wkwebview测试之路的相关文章

开启服务器固件测试之路

上个月30号,彻底的结束了我的BMC监控的苦逼的日子,这个月7号开始我的服务器固件测试之路. 虽然我现在很讨厌我的这份工作,(工作内容和工作环境)但是我也明白必须认真的对待每一份工作,每一份工作都有它的生存之道,就像欣哥说的那样工作都是相通的,只是要学会工作的技巧.好吧我还想再一次抱怨一下我的工作环境,吵死了,吵的我想从5楼跳下去. 不到2个星期的接触,我理解一下我的工作内容. 1,不同类型的服务器. 2,一台服务器,测试固件可以正常使用. 3,不同类型的服务器,和不同系统下的固件使用. 4,找

测试之路3——对比XML文件2

距离上一篇对比xml文件隔了很久,并不代表一直做了那么久. 其实上一次对比xml文件一直出错,其实我忽略了一个很简单的问题:我从根目录下得到的所有孩子,是这个根下的,而xml文件的组织形式如下,孩子也有可能是其他的根: <streams> <stream id = "979" presetid = "-1"> <h264> <profile>High</profile> <par_y>-1<

网易严选是一个可以信赖的品牌吗?是!

最近,因为一个"锅",网易严选又成为关注焦点.7月10日,有用户反馈网易严选的一款锅具存在设计纰漏,要求提供解决方案.网易严选收到反馈后迅速进行核实,并在当晚发布公告,主动承诺为所有购买此商品的顾客办理全额退款,无论锅具是否曾在使用中出现问题.虽然消费者对这个处理方案表示满意,但也有一些声音认为,网易严选所代表的ODM模式不成熟,导致此次产品问题. 实际上,任何新商业模式的诞生往往伴随着巨大的争议,正如滴滴打车上线初期饱受安全及黑车的争议,却一步步证明其模式的成功,不仅成功缓解出行供需

小白的软件测试之路

从笔记本代工企业跳出来做软件测试到今天为止整三个月了,一个人从手工测试摸索到现在尝试自动化,做一下总结吧. 第一阶段:依照上一个测试人员的惯例在qc中写用例并执行,发现写的非常的糟糕,无体系且混乱.基本只涉及一些功能测试方面,而且书写非常混乱. 第二阶段:开始查找资料,梳理测试流程,将系统测试各方面重新组织规划,并尽量在有新测试对象时使用这个规范测试,并使用到书中讲到的一些测试用例设计的方法. 第三阶段:寻找自动化测试之路(公司产品分为android端和web端,重点先放在web上),这里的自动

测试之路2——对比XML文件1

才来几天,老大又给了我一个新的任务.不像以前的建100个任务工程那么坑爹,却还是顿时让我感觉压力山大. 因为在这之前,我改了他写的例程,用于生成新的任务项目,其实任务项目就是通过XML文件进行参数传递,底层早已经封装好了.但是问题出来了,你新建任务需要传过去一个XML文件,但是服务器端生成任务还会返回一个XML文件,而我对于服务器端并不了解,我只知道服务器生成了一个XML文件,但是它生成的XML中的参数是否和我传过去的参数相同? 所以老大要我写一个方法,去比对这两份XML文件.(自己传到服务器和

我的2015测试之路 ——做一个很有想法的测试

我的2015测试之路 ——做一个很有想法的测试 不记得有多少次了,总是说等什么时候闲了,就回过头看看这一路跋涉.风尘仆仆的自己.可每次都只是想想而已,即使真的闲下来了,却又不太愿意剥开自己的心,怕看了会伤感.又怕看了会觉得失望,可能是我没有成为,当初那个我想要成为的样子吧.是该对自己说一句对不起了.对不起,我深爱的自己! 人们总是在歌谣里哀求时光慢些,不要再让亲人变老了.但它总也是不听话,于是2015年终究是被推进了历史.现在我们只能在回忆和指尖怀念2015了,诚然,2015对我们每个人来说都是

基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)

高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+ThinkJS+MySQL 计划添加基于Vue.js的后台管理系统.PC版.Wap版 GitHub: https://github.com/tumobi/nideshop-mini-program 项目截图 首页 专题 分类 商品列表 商品详情 购物车 订单中心 功能列表 首页 分类首页.分类商品.新品首发.

网易严选引发精选电商大潮,头部市场成新一轮博弈点

最近互联网公司中,霉运连连的当属乐视和贾跃亭,而捷报频传.喜上眉梢的绝对是网易和丁磊. 网易第一季度财报数据显示,网易净收入和净利润连续创历史新高,多款产品排在行业前列,例如有道词典排名教育第一,网易新闻客户端仅次于腾讯,有道云笔记排名行业第二,网易云音乐排名前四.而除了这些广为人知的产品,丁磊的电商梦也开始有了起色. 7年前那场轰动了半个互联网的"养猪事件"足以证明丁磊对电商的初心,如今网易味央完成了1.6亿元的A轮融资,养猪事业可谓如火如荼,另外一边自营ODM生活电商网易严选也交出

网易严选优惠券 网易严选优惠券怎么用

小编知道很多人代购会选择网易严选这个平台,那么对于网易严选大家的了解有多少呢?其实小编个人也觉得网易严选也是个很好的购物平台,今天要给大家介绍的是网易严选优惠券在哪用?教教大家网易严选优惠券怎么用? 首先网易严选从哪拿优惠券呢?有站内和站外两个渠道. 站内:通过活动赠送.客服补偿等获得(系统自动添加,无需激活); 站外:通过外部合作渠道获得的优惠券激活码,在"个人中心-优惠券"找到激活码输入框,输入获得的激活码即可激活(参见激活码使用说明,请在有效期内激活). 知道了优惠券从哪来,那么