用winrunner实现软件的全球化测试

上传人:第*** 文档编号:30672852 上传时间:2018-01-31 格式:DOC 页数:26 大小:579.50KB
返回 下载 相关 举报
用winrunner实现软件的全球化测试_第1页
第1页 / 共26页
用winrunner实现软件的全球化测试_第2页
第2页 / 共26页
用winrunner实现软件的全球化测试_第3页
第3页 / 共26页
用winrunner实现软件的全球化测试_第4页
第4页 / 共26页
用winrunner实现软件的全球化测试_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《用winrunner实现软件的全球化测试》由会员分享,可在线阅读,更多相关《用winrunner实现软件的全球化测试(26页珍藏版)》请在金锄头文库上搜索。

1、1用 WinRunner 实现软件的全球化测试摘要本文采用循序渐进的方法详细的介绍了如何用 WinRunner 实现软件的全球化测试。当然,单靠 WinRunner 本身是无法完全实现的,我们开发了一个小程序 COFAL 来帮助WinRunner 实现全球化测试。通过学习这篇文章,您可以掌握: WinRunner 的在全球化测试中的缺陷 WinRunner 本身可用于全球化测试的地方 COFAL 如何帮助 WinRunner 实现全球化测试 COFAL 的实现细节关键字Globalization(g11n ) ,Internationalization(i18n) ,localization(

2、l10n) ,Code Once Fit All Language(COFAL )1. 背景全球化已经成为当今软件发展的趋势,许多大型跨国软件公司都在亚洲设立了自己的专门从事全球化测试的部门。2004 年的 8 月,我加入 Oracle 甲骨文北京研发中心,正式成为这其中的一员,我测试的软件是 Oracle Application Server 10g,以下简称Oracle AS。 Oracle AS 是一个基于 J2EE 架构的应用系统,详细的介绍您可以参考OTN 上的相关文档。1.1 全球化中的概念全球化的英文是 Globalization,由于单词较长,所以为了书写方便,通常缩写为G11

3、N,中间的 11 代表首字母”G”和尾字母”N”之间省略的 11 个字母。引用”中国本地化” 网站上对全球化的定义: Globalization 是使产品或软件进入全球市场而进行的有关的商务活动。包括正确的国际化设计,本地化集成,以及在全球市场进行的市场推广、销售和支持的全部过程。全球化中与我们测试直接相关的有国际化设计和本地化集成。国际化的英文是 internationlization,由于单词较长,通常缩写为 I18N,中间的18 代表首字母”I”和尾字母”N”之间省略的 18 个字母。引用”中国本地化”网站上的定义:国际化设计是指设计一个适用于多种语言和地区的应用程序的过程。适用于多种语

4、言和地区的含义是当使用不同语言及处于不同的地区的用户在使用这个应用程序时,应用程序必须使用他们能看懂的语言和符合他们文化习惯来显示信息。本地化的英文是 localization,由于单词较长,通常缩写为 L10N,中间的 10 代表首2字母”L”和尾字母”N”之间生罗的 10 个字母。引用”中国本地化 ”网站上的定义:本地化是指将产品或软件针对特定国际语言和文化进行加工,使之符合特定区域市场的过程。真正的本地化要考虑目标区域市场的语言、文化、习俗和特性。通常包括改变软件的书写系统(输入法) 、键盘使用、字体、日期、时间和货币格式等。Locale表示表示一个特定的地理、政治或文化的区域,在jav

5、a中有Locale类,我们会在1.3小节中给出详细的描述 1.2 全球化测试的内容简单的说,全球化测试主要是测试软件的处理数据和显示数据的功能。以 Oracle AS 为例: 处理不同的字符集(encoding)数据Oracle Internet Directory(简称 OID)是一个 LDAP 服务器,数据保存在Oracle 数据库中,现在想测试它创建用户的功能,要求用户的 DN 可以为不同国家的字符集,通俗的说,可以创建英文的 DN,简体中文的 DN 和日文的 DN 等。当然具体可以创建哪些字符集的 DN 也要看当前 Oracle 数据库的字符集,只是那些在可以和当前字符集正确转换的字符

6、集中的 DN 才可以正确的创建,否则很有可能无法创建或者创建的结果错误,如我们经常会看到的一些数据变成了问号(?) 。 动态显示与 Locale 有关的数据Oracle Delegated Administration Services(简称 DAS)是一个通过 web 页面访问的组件,页面的编码方式为 UTF8,要求当选择不同的浏览器语言时,以下各项都可以显示为与当前 Locale 相符的形式: 页上元素的文本类型的属性如某个页的标题,在英文下为“Home” ,在中文下为“主页 ”;某个按钮上的标签,在英文下为“OK” ,在中文下为 “确定” 。 表示日期、时间、时区和货币等的文字如某个页上

7、的一段表示出生日期的文字,在英文下显示为“January 1, 1976”,在中文下显示为“1976 年 1 月 1 日” 。1.3 Java 程序的国际化设计Java 语言是平台无关的,它采用双字节字符编码(UTF16 ) ,在解决国际化问题上有天生的优势。下面我要介绍的是 Java 中“动态显示与 Locale 有关的数据”的原理。这里要用到的几个主要类都在 java.util 包(package)中,包括有Locale、ResourceBundle 、ListResourceBundle、PropertyResourceBundle等,其继承关系如下图所示:3 Locale该类包含对主要

8、地理区域的地域化特征的封装。通过设定 Locale,我们可以为特定的国家或地区提供符合当地文化习惯的字体、符号、图标和表达格式。例如,我们可以通过获得特定 Locale 下的 Calendar 类的实例,显示符合特定表达格式的日期。Locale 有以下三个构造函数: Locale(String language) Locale(String language,String country) Locale(String language,String country,String variant)language 参数 :代表两个小写英文字符的 ISO 语言编码,如 zh 表示 Chinese,

9、可用的语言编码可以参考:http:/www.ics.uci.edu/pub/ietf/http/related/iso639.txtcountry 参数 :代表两个大写英文字符的 ISO 国家或地区编码,如,CN 表示China, TW 表示 TAIWAN,国家代码对照表如下:http:/userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.htmlvariant 参数 :代表与供应商或浏览器相关的代码。如,WIN 表示 windows,MAC 表示Macintosh,POSIX 表示 POSIX。当有两个 variant 存在的话,用下划线(ud

10、erscore)连接,并把最重要的 variant 放在前面。下面是几个典型的 Locale 的例子Locale(ja)Locale(zh,CN)Locale(zh,TW,WIN)Locale(es,ESTraditional_WIN)Locale.getDefault(),得到当前 Java 虚拟机的宿主系统上默认的 Locale ResourceBundle该类是一个抽象类,它定义了三个静态方法来获得具体的实现类(ListResourceBundle 的子类或 PropertyResourceBundle 类)的实例: static final ResourceBundle getBund

11、le(String baseName)等同于调用:getBundle(baseName,Locale.getDefault(),this.getClass.getClassLoader()使用的是系统缺省的 Locale。 static final ResourceBundle getBundle(String 4baseName,Locale locale)等同于调用:getBundle(baseName,locale,this.getClass.getClassLoader()使用的是参数 locale 指定的 Locale。 static final ResourceBundle get

12、Bundle(String baseName,Locale locale,ClassLoader loader)下面我们来说说 baseName 参数和 locale 参数。BaseName 参数 指定的是一组 ReourceBundle 的公共的基础名称,例如,设 baseName等于“TestBundle ”。如果用 ListResourceBundle 子类来实现,则要有如下这样的类:TestBundle.class、 TestBundle_zh_CN.class 和 TestBundle_fr.class等;如果用 PropertyResourceBundle 来实现,则要有如下这样的

13、属性文件:TestBundle.properties、 TestBundle_zh_CN.properties 和 TestBundle_fr.properties 等。locale 参数和选择策略一起决定运行时具体选择这组 ResourceBundle 中的哪一个。假设 locale 参数指定的 Locale 为(language1,country1,variant1) ,系统默认的 Locale 为(language2,country2,variant2) ,则按照以下优先级的顺序查找最满足条件的 ResourceBundle: baseName + _ + language1 + _ +

14、 country1 + _ + variant1 baseName + _ + language1 + _ + country1 baseName + _ + language1 baseName + _ + language2 + _ + country2 + _ + variant2 baseName + _ + language2 + _ + country2 baseName + _ + language2 baseName 在每一种情况下,会先尝试按 ListResourceBundle 类的方式加载,失败后会再尝试按照访问属性文件的方式加载 PropertyResourceBund

15、le 类。如果所有这些情况都没有找到的话最后会抛出一个MissingResourceException 的异常。注意,在第一个 getBundle 静态函数中 locale 参数指定的 Locale 就是系统默认的Locale。 ListResourceBundle该类继承 ResourceBundle 类,也是一个抽象类。它实现了 ResourceBundle 类中的抽象函数 getKeys()和 handleGetObject(String key),并提供了一个抽象函数getContents()。在应用中,通过创建继承 ListResourceBundle 的子类来实现ResourceB

16、undle。要求子类必须实现 getContents 函数并提供一个包含有一组属性对的数组,如:package oracle.cdc.sgt.unicode;5import java.util.ListResourceBundle;public class MResources extends ListResourceBundle public Object getContents() return contents;static final Object contents = s1, Home;package oracle.cdc.sgt.unicode;import java.util.ListResourceBundle;public class MResources_zh_CN extends ListResourceBundle publ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号