wap前端测试改进总结-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

wap前端测试改进总结

简介:

前言

  无线产品线的很多模块基本上都属于前端类型,前端模块一般具有如下几个特征:接收处理用户请求,本身不维护数据,从后端模块获取数据,进行build页面后展示给用户。

  从图示可以看到,针对前端测试,我们需要根据手机特性,针对用户和前端的输入输出进行针对性的测试。

  问题及解决方法分析

  目前wap前端测试采用的方法有如下几个:

  对于build页面的系统逻辑部分的case,采用自动化方式进行测试

  对于页面展示部分的case,使用能够支持wml和xhtml页面的pc浏览器(比如opera或者安装了wmlbrowser的firefox)进行测试

  对于前端页面的重大调整,比如尝试使用新的页面元素,采用真机或手机模拟器的方式进行,但主要偏重于验证是否由于新元素的使用引入了兼容性问题

  由于真机测试的效率得不到很好的保证,且手机浏览器比pc浏览器种类纷繁复杂(包括手机内置浏览器及第三方开发的浏览器),难以依靠几款手机或浏览器进行覆盖,因而在wap前端测试中采用真机进行的比较少。测试中比较多的采用pc浏览器进行模拟,而手机和pc浏览器之间又存在较多的差异性,给wap的前端测试带来了诸多bad case甚至bug。

  从输入角度

  由于手机提交请求的差异性,比如部分手机提交不符合http协议规范的header,给无线的前端测试带来了诸多的问题,典型示例如下:

  发现由于某些手机提上来有key没value的header字段而使web server抛出异常而处理失败。

  前端架构升级项目,web server上线过程中发现部分手机发送的get请求携带content-length=0,web server对于此类不符合http协议规范的请求直接抛弃而拒绝服务。

  为了避免以后再出现类似问题,我们考虑的解决办法是:收集并分析用户请求的差异性,形成case库及参考文档,供以后测试参考。

  从输出角度

  目前wap页面包括wml和xhtml两个版本,由于手机浏览器的兼容性没有pc浏览器的兼容性好,经常可能会由于一些小的语法错误导致页面无法正常显示,典型示例如下:

  页面中url参数的&符未转义

  由于手误,在从xhtml版本修改为wml版本时带入了不支持的标签

  这种问题往往用pc浏览器比如ff不容易发现,而依靠真机或者手机模拟器测试又不够高效。针对这一问题,我们的解决思路如下:首先保证我们的wap页面是符合规范的;在我们符合规范的情况下尽可能的收集bad case并予以规避。

  改进实践

  手机header数据仓库

  整个数据仓库形成思路如下:

  步骤1:首先不依赖于web server,编写socket server,通过日志得到请求

  步骤2:其次分析header的key类型,给出key集合,并对出现概率较高的header查阅资料给出解释,形成参考文档

  步骤3:再次针对每种key,工具生成value取值集合,并结合含义给出等价类划分,从而形成case库

  针对步骤2,收集用户header,脚本分析得到不同的header集合。对于数量过万的header集合,即在用户请求中出现的比例大于1/1000的header,整理并形成参考文档。

  针对步骤3,对于步骤2整理出来的100中key,分析线上引流数据生成其value取值,去重后得到的value全集,见附录。对于其中重要的key,划分其等价类集合。

  wap页面规范性校验库

  如何保证wap页面是符合规范的,就需要按照标准wml和xhtml的规范进行页面检查。wap页面规范性校验库包括如下两个步骤:

  步骤1:总结目前使用的页面标准规范,形成参考文档

  步骤2:封装开源xml校验库,集成到自动化框架中

  针对步骤1,目前wap页面包括wml和xhtml版本,wml基本上都是”wml_1.1.xml”,xhtml基本上都是”xhtml-mobile10.zip”,整理其相应的规范内容见下表。

  针对步骤2,调研目前开源的xml语法校验工具,比如http://validator.w3.org/,将开源的校验库封装成工具,且集成到自动化框架中,方便的进行调用,提高测试效率和覆盖率。目前实现为基于java语言,采用dom4j开发了wml&xhtml语法校验库,根据页面申明的dtd进行检查。之所以采用dom4j主要因为其是非常优秀的Java XML API。

  另外由于wise页面采用的dtd规范基本一致,例如wml基本上都是”wml_1.1.xml”,xhtml基本上都是”xhtml-mobile10.zip”,因而采用dtd本地保存的方法,加快执行速度。封装到wise-test后,使用非常简单,case中只需调用check_validation(url),即可实现对指定url的语法检查。在升级项目中,对该工具进行了实践检验,基本上每个页面的自动化case都进行了语法检查,发现了在两个wml页面引入xhtml标签导致的页面解析失败问题。

  (全文完)








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章