我们仍然以这个场景为例,所不同的是:用户进入IBM中国网站。再搜索关键字"lotus",验证"www.lotus.com"这一链接存在于结果集内。测试过程的逻辑并没有变化,但界面截然不同, "Search"按钮在这里显示为"搜索"按钮。
为了拓展脚本SearchLotusLink对多语言的支持能力,我们在SearchLotusLinkHelper查找对象的过程中,加上一个中间层,通过它来衔接固定的操作逻辑和多变的界面。原先的方法findTestObjectInBrowser(String property1, String value1, String property2, String value2)只是按这两个属性值找出合适的对象;现在则要对属性做适当的转换,使它能适应其他语言环境,在不同语言的界面里都能定位到这个页面对象。
将Rational Functional Tester切换到"Java透视图",在SearchLotusLinkHelper所在的resources包中,添加一个类:utilities,来实现对多语言环境的支持。这里为简单起见,我们将URL和搜索按钮的文本的多语言表示直接保存在这个类里。用户可以通过它来获取某一属性在特定语言环境下的表示。
public class utilities {
/**
* Script Name : <b>utilities</b>
* Generated : <b>2005-10-25 16:51:51</b>
* Description : Functional Test Script
* Original Host : WinNT Version 5.1 Build 2600 (S)
*
* @since 2005/10/25
* @author zhangguojun
*/
public static String EN_LOCALE = "en";
public static String CN_LOCALE = "cn";
public String CurrentLocale = EN_LOCALE;
private Hashtable textRepositoryForEN = new Hashtable();
private Hashtable textRepositoryForCN = new Hashtable();
private static utilities _instance = null;
private utilities(){
textRepositoryForEN.put("Search","Search");
textRepositoryForEN.put("IBMurl","www.ibm.com");
textRepositoryForCN.put("Search","搜索");
textRepositoryForCN.put("IBMurl","www.ibm.com/cn");
}
public static utilities getInstance() {
if (null == _instance)
_instance = new utilities();
return _instance;
}
public void setCurrentLocale(String locale)
{
CurrentLocale=locale;
}
public String getLocalText(String textId)
{
return getLocalText(CurrentLocale,textId);
}
public String getLocalText(String locale, String textId)
{
String returnVal = null;
if(locale.equals(EN_LOCALE))
returnVal = (String)textRepositoryForEN.get(textId);
else if(locale.equals(CN_LOCALE))
returnVal = (String)textRepositoryForCN.get(textId);
if(null==returnVal)
return textId;
else
return returnVal;
}
}
文章来源于领测软件测试网 https://www.ltesting.net/