标签归档:web测试

网站速度页面加载速度影响转化率

2010年还是8秒原则,现在已经进入3秒原则了。我们一直很重视网站性能优化,在人才培养和招聘的时候也都非常重视,但性能优化到底为什么这么重要?对电商网站来说,性能优化对转化率的影响是实实在在的,也是非常有说服力的,这是国外同行webperformancetoday的研究成果,简单翻译一下分享给大家。
当然,网站性能优化带来的好处不止转化率这一点,对基础用户体验、运营成本控制等都有很重要的影响,这些我们后面再说。
直接看图表吧:

字体:        | 上一篇 下一篇 | 打印  | 我要投稿 

苦逼的浏览器兼容性测试

测试国内网站的同学是不是已经非常头疼了,因为面对的浏览器除了国际大牌如IE, Chrome, Firefox, Opera, Safari, 还有国内诸多屌丝级的浏览器如:360安全浏览器,360极速浏览器,360影视浏览器(360碉堡了,会不会再搞出一些购物浏览器,买火车票浏览器啊?)搜狗双核浏览器,猎豹,淘宝,世界之窗,百度浏览器,还没完呢,听说过枫树浏览器吗?没听过的赶紧去科普科普吧!另外我今天还被不知不觉安装了云帆影视浏览器。再想想这些浏览器有多少个版本?还有运行在Windows和MAC系统上的浏览器也是有些差异的。曾经在兰亭时就出现过在MAC/Chrome上有Windows/Chrome上没有的bug。这么多要覆盖的浏览器你若没晕说明身体和心理素质好,反正我是晕了!
可是我们需要考虑浏览器,版本,系统三个因子去组合吗?答案当然是否定的。
一般针对普通用户的网站都会嵌入GA统计代码,现在google被和谐了,可以换成百度统计,但是它们都可以跟踪到用户行为,其中一项就是浏览器访问占比,清清楚楚告诉你每个浏览器占比,每个版本占比,所谓好钢用在刀刃上,有个这项数据后,就应该清楚的知道我们的工作重点在哪里,根据二八原则,我们也需要投入大部分精力在占比排名在80%前的上面,投入少量精力在占比比较小的浏览器上,我们之前的经验能保证正常功能能使用,一些小样式就可以容忍了,这种情况多是IE6,7,不过我一直都没有想明白,对于IE6,国外发达国家都已经绝迹了,为啥国人不能使用一些更高级的浏览器呢?回到正题,其实如果发布时间紧急,实在没有时间来做这么多浏览器覆盖的时候,就再分析一下国内诸多浏览器使用的内核以及他们的区别是什么, 如果是Chrome的内核,也许可以跟Chrome一起来测试,如果是IE的话,就跟IE一起来测试,当然不同的浏览器在渲染原理上必然还是有一些差异的,不过为了赶工,还是要做取舍的。对于IE的话,的确有必要再唠叨几句,基本在IE8及以后版本,基本都是标准模式,IE6,7的怪癖模式需要格外注意,如果你的网站在这两个版本上占比还不小的话,的确需要好好测试下这两个版本,IE9及之后的版本以及较新的Chrome,Firefox基本上都不会出问题。
而对于企业级用户的网站或者有专人在维护用户的平台,就好办多了,我们可以保证几个重要的浏览器重要版本的兼容性,然后让公司的运营或者销售人员与用户做好沟通,对哪几个浏览器支持比较好,建议他们使用我们支持的浏览器,因为有沟通渠道,是不是就好很多了。
测试国外用户特别是欧美的网站,就大有福气了,他们早就不用IE6,7了,而且国外的本土浏览器也并没有像国内这么大放异彩,需要覆盖的就少很多了。就像以前在兰亭的时候,根据GA统计数据,用户使用量大的基本都是比较新的浏览器版本,而且Chrome,Firefox占比比较大。
对于浏览器兼容性测试,你是不是想问有没有什么工具来帮助我们做?是有,不过像IETester也只是支持IE,而且需要人工检查兼容性问题, BrowserShots也只是做线上测试工具,并不支持测试环境。不过我之前用过一个Chrome的插件叫浏览器兼容性检测工具,可以在内网测试,会自动监测网页的设计是否满足对应浏览器及版本的规范,不满足的话就会详细提示出来,不过有些过于专业性了,更适合开发人员查看,测试人员可以推荐给开发人员使用,这样在开发阶段就规避掉一些兼容性问题岂不是更好。

Web自动化测试原理

目前有很多Web UI自动化测试框架,如WatiN,Selinimu,WebDriver等,这些框架都可以操作Web中的控件,模拟用户输入,点击等操作,实现Web自动化测试。其实这些工具的原理都一样,都是通过调用IE COM接口和HTMLDOM 对IE浏览器以及WEB测试对象的操作。 本文介绍脱离这些自动化测试框架,通过AutoIT直接使用IE COM接口结合HTML DOM对IE浏览器以及WEB对象进行自动化测试的方法。
1.IE常用操作
首先新建一个IE COM对象,配置IE窗口属性,模拟用户同时跳转至相应的页面同时进行相应操作。访问页面时,需要等待页面加载完成后再进行操作。这里我们可以使用IE COM的BUSY属性检查浏览器是否处于加载状态,再进行相应的操作。示例代码如下:
2.利用DOM操作测试对象
现在已经会使用IE COM组件来对IE浏览器进行自动化的操作,但是对于浏览器页面中的测试对象IE COM是无法对其进行操作的,这个时候就需要使用HTML DOM来对其进行操作。
2.1 HTML DOM简介
HTML DOM是HTML Document Object Model(文档对象模型)的缩写,它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。 常用DOM 属性如下:
className.同一样式规则的元素用相同的类名。可以通过className快速过滤出一组类似的元素。
document.用于指向包含当前元素的文档对象。
id.当前元素的标识。如果文档中包含多个相同id的元素,则返回一个数组。
innerHTML.用于指向当前元素的开始标记和结束标记之间的所有文本和HTML标签。
innerText.用于指向当前元素的开始标记和结束标记之间的所有文本和HTML标签。
offsetHeight, offsetWidth.元素的高度和宽度。
offsetLeft, offsetTop.当前元素相同对于父亲元素的左边位置和顶部位置。
outerHTML.当前元素的开始标记和结束标记之间的所有文本和HTML标签。
outerText.当前元素的开始标记和结束标记之间的所有文本,但不包括HTML标签。
parentElement.当前元素的父亲元素。
sourceIndex.元素在document.all集合中的索引(index)。
style.元素的样式表单属性。
tagName.当前元素的标签名。
title.在IE中,代表元素的tool tip文本
常用DOM方法如下:
click().模拟用户对当前元素的鼠标点击。
contains(element).用于判断当前元素是否包含指定的元素。
getAttribute(attributeName, caseSensitive).返回当前元素所包含的某个属性,参数attributeName为属性名、caseSensitive表示是否大小写敏感。
setAttribute(attributeName, value, caseSenstive). 设置当前元素的属性。
常用DOM 集合如下:
All[].当前元素中包含的所有HTML元素的数组。
children[].当前元素包含的子元素。

免费Web网站安全检测工具N-Stalker Free Version

随着 Web 应用越来越广泛,Web 安全威胁日益凸显。黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这也使得越来越多的用户关注应用层的安全问题,对 Web 应用安全的关注度也逐渐升温。下面向大家推荐8款非常有用的免费 Web 安全测试工具。
N-Stalker Free Version
N-Stalker Web 应用程序安全2012免费版本能够为您的 Web 应用程序清除该环境中大量常见的漏洞,包括跨站脚本(XSS)、SQL 注入(SQL injection)、缓存溢出(Buffer Overflow)、参数篡改 (Parameter Tampering)等等。
Netsparker Community Edition
Netsparker Community Edition 是一款 SQL 注入扫描工具,是Netsparker的社区免费版本,提供了基本的漏洞检测功能。使用友好,灵活。
Websecurify
Websecurify 是一款开源的跨平台网站安全检查工具,能够帮助你精确的检测 Web 应用程序安全问题。
Wapiti
Wapiti 是 Web 应用程序漏洞检查工具。它具有“暗箱操作”扫描,即它不关心 Web 应用程序的源代码,但它会扫描网页的部署,寻找使其能够注入数据的脚本和格式。

Skipfish
Skipfish 是 Google 公司发布的一款自动 Web 安全扫描程序,以降低用户的在线安全威胁。和 Nikto 和 Nessus 等其他开源扫描工具有相似的功能。
Exploit-Me
Exploit-Me 是一套 Firefox 的 Web 应用程序安全测试工具,轻量,易于使用。
OWASP WebScarab Project
WebScarab 一个用来分析使用HTTP和HTTPS协议的应用程序框架,通过记录它检测到的会话内容(请求和应答)来帮助安全专家发现潜在的程序漏洞。
X5s
x5s 是一款 Fiddler 插件,用于辅助渗透测试人员发现跨站点脚本(XSS)漏洞。

浏览器兼容测试工具推荐

有许多免费或收费的跨浏览器兼容测试工具。最关键的是,大多数情况你可以用免费的工具来完成你的工作。如果你有非常特殊的要求,那么你可能需要一个收费的跨浏览器兼容测试工具。让我们简单介绍一下一些最好的工具:
1.IETab:这是我最喜欢的和最好的免费工具之一。这基本上是一个Firefox和Chrome浏览器的插件。只需简单的单击鼠标就可以从Firefox和Chrome浏览器中看到该网页在InternetExplorer中将如何被显示。
2.MicrosoftSuperPreview:这是微软提供的免费工具。它可以帮助你检查在各种版本的InternetExplorer下网页是如何显示的。你可以用它来测试和调试网页的布局问题。你可以在微软的网站上免费下载此工具。
3.SpoonBrowserSandbox:您可以使用此测试工具在几乎所有主要的浏览器下测试Web应用程序,如Firefox,Chrome和Opera。最初,它也支持IE,但在过去的几个月里,它减少了对IE的支持。
4.Browsershots:使用这个免费的浏览器兼容性测试工具,可以测试在任何平台和浏览器的组合应用。所以,它是最广泛使用的工具。然而由于浏览器和平台的大量组合,它需要很长时间才能显示结果。
5.IETester:使用这个工具,你可以在各种Windows平台测试IE各种版本的网页,如WindowsVista,Windows7和XP。
6.BrowserCam:这是一个收费的浏览器兼容性在线测试工具。您可以用它的试用版进行24小时200张图以内的测试。
7.CrossBrowserTesting:这是一个完美的测试JavaScript,Ajax和Flash网站在不同浏览器中功能的工具。它提供1周免费试用。你可以在http://crossbrowsertesting.com/上下载
8.CloudTesting:如果你想在各种浏览器上测试您的应用程序的浏览器兼容性,如IE,Firefox,Chrome,Opera,那么这个工具很适合你。
除了这些工具,还有一些其他的工具,如IENetRenderer,Browsera,AdobeBrowserLab等,通过对这些工具进行一段时间的研究和使用,就可以达到事半功倍的效果。

Web测试人员经验总结

随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。

在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。 一般软件的发布周期以月或以年计算,而Web应用的发布周期以天计算甚至以小时计算。

Web测试人员必须处理更短的发布周期,测试人员和测试管理人员面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。

一、 功能测试 
1、链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。 链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。

2、表单测试 当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。

3、Cookies测试 Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。 如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。

4、设计语言测试 Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。

5、数据库测试 在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。 在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。

二、 性能测试

1、连接速度测试

用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。 另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。

2、负载测试

负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?

3、压力测试

负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。 进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。 压力测试的区域包括表单、登陆和其他信息传输页面等。
三、 可用性测试

1、导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助? 在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。 导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。 Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。

  2、图形测试 在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。

图形测试的内容有: 
(1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。 
(2)验证所有页面字体的风格是否一致。 
(3)背景颜色应该与字体颜色和前景颜色相搭配。 
(4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。

3、内容测试

内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。 信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的”拼音与语法检查”功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓”相关文章列表”。

4、整体界面测试

整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致? 对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。 对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。

四、 客户端兼容性测试

1、平台测试

市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。 因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。

2、浏览器测试

浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。 测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

五、 安全性测试

Web应用系统的安全性测试区域主要有:

(1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。

(2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。