测试流程说明
1、测试场景设计
浏览器端的可靠性测试中,需要设计两种类型的测试场景:压力测试和长时间测试。压力测试一般针对关键功能点和用户操作频率较高的操作。长时间测试则是对整个产品进行的可靠性把关。
2、测试脚本开发
浏览器端的可靠性测试主要是通过执行自动化脚本完成的。所以,开发健壮的脚本来模拟浏览器端的 GUI 操作,会使我们的测试事半功倍。从整个测试过程来看,自动化测试可以节约我们大量的时间和精力。
值得说明的是,我们在编写脚本的同时,需要注意几个方面的问题。首先,我们要考虑测试脚本对不同浏览器的兼容问题。尽可能通过一些公共属性查找页面元素,以使脚本能够顺利地跨浏览器执行。其次,利用日志来分析潜在的可靠性问题。我们通常将对页面的操作信息(也可能包括浏览器的内存占用等信息)打印在日志文件中,便于分析。
3、测试环境准备
准备测试环境是测试执行前最关键的一步。我们一般会制定一份检查列表,通过勾对每个检查项目来确保测试环境的正确。下面我们列出一些针对浏览器端测试,需要考虑的环境因素:
● 操作系统
a、操作系统版本及补丁要在测试前指定好,并严格按照要求进行安装。因为某些微小的差别可能会导致不同的测试结果。
b、关闭操作系统自动更新的设置,关闭桌面屏保,禁止自动关闭显示器、硬盘。以上这些都是为了避免测试脚本在运行过程中意外中止。
● 浏览器
a、浏览器版本要正确,特别注意浏览器的小版本号
b、关闭自动更新浏览器的选项,同时禁止自动更新浏览器插件
c、关闭一切不使用的、或可能对可靠性产生影响的浏览器插件。禁用插件的目的是杜绝插件本身对测试结果的干扰,比如插件本身可能带来的导致浏览器内存泄露等问题。
● 监测工具
配置监测工具,指定需要收集的数据,并在监测工具中配置相应的计数器,比如内存占用、CPU 等信息。对浏览器端可靠性测试而言,我们主要收集浏览器进程的相关信息。
● 测试数据
根据测试场景,准备必要的测试数据。用于测试的数据通常要求具有代表性。一方面是为了能够通过数据覆盖到更多的功能点,另一方面也可以最大限度地模拟用户的真实使用状况。
● 服务器端
有时,服务器端的相关配置也会对浏览器端的测试产生影响。比如测试一个基于 WebSphere Application Server 的应用。当我们需要进行一个持续 3 小时的测试的时候,我们就需要对 WAS 上的 LTPA timeout 进行必要的修改,使它大于 3 小时。否则,当测试脚本执行到 2 小时(默认值)的时候,页面会自动 logout 退出,导致脚本无法继续执行。
4、执行测试
执行测试的步骤如下图所示。主要是通过运行自动化脚本来模拟用户操作页面,同时使用监测工具监测浏览器进程的过程。
图 4. 执行测试的步骤
5、发现问题
我们常常在测试还未结束的时候就能发现问题。通过监测工具实时地监测浏览器进程,很多问题在测试过程中就已经表现出来了。
下面就是一个典型的例子:
图 5. 通过检测工具发现内存泄露
从图中可以看到,在测试持续了 21 分钟的时候,从系统监测工具中,已经清晰地看到一个内存增长趋势图。图中的内存占用由开始的 100 多兆,迅速涨到近 800M。这说明此段测试中所执行的页面操作,导致了严重的浏览器端内存泄露。