您通过此文,不仅能够了解到自动化在 TVT 多语言环境过程中的作用,而且可以在 Selenium WebDriver 做">自动化测试方面获得更多的启发,比如 WebDriver 对 Firefox 浏览器的操作等等。
翻译验证测试 (Translation Verification Testing,TVT) 是 IBM GSSC 部门为 IBM 的各种产品做本地化 (Localization) 的一个测试环节。众所周知,我们开发出一款产品,需要让全球各地的用户都能够无障碍的使用,就必须精准的将产品 UI 和相关文档翻译成各种语言,这样不同国家和地区的用户才能够顺畅使用。TVT 的过程就是一个产品翻译验证测试的过程。
必要性
从字面上看,TVT 是一个比较简单的翻译验证过程,然而在 GSSC 内部,完成这个过程却有复杂流程。在这些流程中,其中有一个重复而且工作量很大的环节就是截图。截图是将产品所有语言版本的 UI 和相关文档以图片的形势截取并保存下来,然后发给各个国家的 Tester 去验证 (Verification) 其翻译正确性。
我们可以计算一下截图的工作量,如果一个产品要做 20 个语言的版本,那么一个 case 需要截图 20 张,假如一个项目中有 1000 个 case,那么 GSSC 的 TSE(Test Support Engineer) 就必须截 20000 张图 (20*1000)。 如果手动来截图,一张图大概要花费 5 分钟的时间,那么手动截图大概是 100 张 / 人天 (60*8/5=96)。10 个 TSE 来完成这项工作也至少需要 20 天时间 (10 人 *100 张 *20 天 =20000 张 )。所以如果能够使用自动化来完成这些重复的工作,录制一次 case 脚本,然后在 20 种语言环境下执行,那么这将大大节省时间和人力成本,所以自动化在 TVT 中是非常有帮助和必要的。
Selenium 简介
Selenium 是针对 Web 应用的测试框架,支持多种浏览器和多种编程语言。Selenium 2 的主要新功能是集成了 WebDriver - 曾经是 Selenium 1(又名 Selenium RC)的竞争对手。Selenium RC 在浏览器中运行 JavaScript 应用,而 WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。
Selenium IDE:FireFox 的一个插件,支持脚本录制。在 TVT 自动化截图工作中,需要用到 Selenium WebDriver 和 Selenium IDE 这两个工具,鉴于本文主要是介绍 TVT 的自动化截图,详细的 Selenium 知识,这里不再介绍,大家可以去其官方网站上了解更多相关知识。
为了配合 Selenium IDE 一起工作,还需要 Firefox 的另外一个插件:Firebug,这个工具可以查找 Web 页面元素的属性,比如元素 ID、Name、Class、CSS、Path 等等,这些都是 Selenium IDE 和 WebDriver 需要使用到的。
用 Selenium IDE 录制和导出脚本
首先需要下载 Selenium IDE, 可以从 Selenium 官方网站下载最新版本的 IDE,但是需要注意 IDE 与 Firefox 的兼容性,具体的兼容性可以在下载的时候阅读 Selenium IDE 的 release notes。下载完成后以插件的形势安装在 Firefox 上。
启动 Firefox 并输入录制网站的 URL,点击菜单栏上面的工具 ->Selenium IDE, Selenium IDE 就会弹出来。接下来对 Firefox 的所有操作都会记录下来,比如系统的登陆过程(如图 1 所示),当所有步骤完成之后,点击 IDE 右上角的红色圆点停止按钮就完成了一个 Case 脚本的录制工作。
图 1. 录制用户登录
接下来介绍一下 Firebug,下载 Firebug, 可以从其 官方网站下载最新版本,同时也需要注意其版本与 Firefox 的兼容性。下载好之后同样以插件的形势安装在 Firefox 上。
安装完之后就可以利用 Firebug 来查找页面元素,右键点击需要查找的元素,选择 Inspect Element with Firebug,这个元素的各种属性就会高亮显示出来,(如图 2 所示),这时候您就可以根据自己的需要选择元素的各种属性,Firebug 的使用,请大家参考其 使用手册。
图 2. 使用 Firebug 查看页面元素
脚本录制完就可以导出来了,在 Selenium IDE 的菜单栏上点击 File-> Export Test Case As..-> Java/ Junit4/WebDriver, 输入文件名并保存,注意后缀为 .java(如图 3 所示)。到此就得到了 Case 执行过程中的 Java 脚本,接下来需要做的就是将其导入 Eclipse 修改和添加相关步骤。
图 3. 导出脚本