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/

时间: 2024-09-19 20:29:43

wap前端测试改进总结的相关文章

FuncUnit 和 Cucumber —— 前端测试的最佳搭档

这周我花了些时间研究FuncUnit 和Cucumber. 本文中我将说明为啥要联合使用这两个框架及使用它们进行前端测试. Cucumber 这是 Cucumber wiki: Cucumber 可以执行基于文本描述的功能自动化测试 Cucumber 可以运行根据基于文本定义的自动化测试.它是基于BDD开发模式的,他方面了非技术人员的测试用例开发. 我一开始定义了一些功能实现.这是一个多选功能,就涉及选中和取消选中: 功能点: 取消选择场景: 取消全部选项 使用多选控件和选项 当用户点击取消全部

在Jasmine+Protractor的环境下,如何使用mock实现伪造数据进行前端测试?

问题描述 在Jasmine+Protractor的环境下,如何使用mock实现伪造数据进行前端测试? protractor+jasmine刚开始学,现在可以轻松写出测试登陆的代码.比如向html input的框里输入,然后点击,判断下一个页面是不是预期的.但是现在pm要求用mock,就是不用服务器的数据,从而伪造一个数据,然后来进行测试,google了很久,支离破碎的代码很多,但是凑不成可以跑的程序.求大神帮忙,先谢过了

前端测试进化论2

说完了,前端技术的发展史,那么对应的前端测试发展史也随之发展. 石器时代--纯手工测试 早期的页面基本都是静态化的页面,只有几个链接或者图片,那么相对测试工作量不大,只需要我们打开页面查看加载是否正确. 铁器时代–xunit 到了javascript时代,随着其他语言xunit 风靡天下,js 也出现了它的xunit 框架. Jsunit,以往在测试js的时候,都是以alert方式来检测错误,很不专业. 2001年 jsunit 出现,让js调试称为可能. Jsunit 主要参考junit的设计

有没有一款综合性的前端测试工具?非常感谢

问题描述 有没有一款综合性的前端测试工具?非常感谢 请问有没有一款综合性的前端测试工具,集成常用的多浏览器兼容性测试,页面坏死链检查,页面Js错误检查,静态语法检查等 解决方案 同求,前端多浏览器测试太苦逼了 解决方案二: 多浏览器永远的痛啊!!

前端测试进化论

第一篇web 发展史 这篇主要是帮助我们qa 了解前端的历史与现状. 测试工程师大部分时间可能关注的是feature正确性,而对于前端代码级别的测试基本没有关心过,随着各种前端框架在web和移动端大行其道,绽放各种高大上的功能时,我们渐渐的发现前端代码级别问题逐渐暴露出来,甚至超越后端之势.那么问题来了,为什么以前这种现象出现呢? 我们现来看看前端技术发展史. ##石器时代--开荒阶段 带有简单逻辑的界面 最早期的Web界面基本都是在互联网上使用,而且基本都是静态页面展示,人们浏览某些内容,填写

在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路_javascript技巧

作为一个标准的绝顶的懒人,我想做一个测试工具,可以同时把所有浏览器的测试结果都显示在一个浏览器窗口里,并且列成清晰的表格,便于比较. 这一定会是一个可爱的工具,节省时间不说,而且可以清晰的记录和比较数据.下面说一下我的思路.(之后我将使用这个工具测试一个js的兼容性问题,敬请关注) 本工具已经制作完成,但是不具通用性,需要和后台配合使用,需要和数据库交互,而且后台交互的性能不太好,普通的电脑无法承受(我的3GHZ的cpu,2G内存都不能直接打开多个浏览器窗口,可能是我数据库的操作过于频繁).虽然

如何在无显示器的ubuntu下跑前端测试

Selenium是一个web自动化测试框架.用它可以实现web应用自动化测试.不过,我不只是用它来做测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容. 作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录.那样很蹩脚,而且不适合部署到多台服务器.这时,你需要Selenium WebDriver,它又灵活,而且通过Selenium headless,运行Selenium在服务器上不需要显示设备. 为什么要运行Headless Selenium 测试

手机 wap 前端-有没jqtouch事件的api供学习的

问题描述 有没jqtouch事件的api供学习的 博客上的基本都是一些理论性的东西.touchstart.touchmove 和 touchend

2017年前端开发工具趋势

本文来源于全球的5254份前端工具使用的调查报告,期望通过本文能够帮助大家更好的了解最新的前端开发工具趋势. 受访者组成 83%的受访者具有两年以上的前端技术经验,只有5%的受访者不到一年: CSS 开发者中有63%为高级开发者和专家: 尽管CSS被认为只是属性-参数值对的简单集合,但是CSS却是很难掌握的.CSS3引入了许多的新特性,要想完全的掌握CSS变得越来越困难. 如果你想学习前端可以来这个群,首先是二九一,中间是八五一,最后是一八九,里面可以学习交流也有资料可以下载. CSS预处理器