软件在开发过程中是不断变化的,之后各个版本间的更替也会不可避免地引起界面、功能的变化,可以说"唯一不变的,就是变化"。这对自动化测试提出了很高的要求:要随需应变。自动化测试的脚本必须具有相当的自适应能力,在各种环境下都能正常工作。只有提高脚本的复用程度和兼容性,自动化测试才有实际意义,否则随着软件的各个版本的变更、发布,测试人员只能不停地去更新脚本,造成效率的低下、人力物力的极大浪费。
要达到这个目标,可以从以下两个方面来着手:
1) 充分利用Rational Functional Tester的强大功能,比如ScriptAssure? 技术、正则表达式,数据驱动,Rational Functional Tester API等;
2) 合理地编写、优化脚本。提纲挈领地对测试过程进行抽象,对关键过程进行必要的验证。
本文将从录制一个简单脚本开始,一步步对其进行改造和完善,不断提高脚本的自适应能力,使之能够摆脱种种束缚,灵活可靠地在多变的测试环境中顺利执行。
一 摆脱初始录制环境的束缚
文中我们以这个简单的Web页面测试场景为例:用户进入IBM网站,搜索关键字"lotus",验证"www.lotus.com"这一链接存在于结果集内。
首先,我们可以使用Rational Functional Tester录制这段脚本:
1. 打开Rational Functional Tester, 新建一个"Functional Test项目",命名为"SearchLotusProject";
2. 右键单击项目管理器中的"SearchLotusProject",选择"使用记录器添加脚本";
3. 将新脚本命名为"SearchLotusLink",单击"完成"按钮;此时会弹出脚本记录器的窗口,脚本记录已经开始了;
4. 依次打开IE,输入地址:"www.ibm.com", 回车;在搜索栏里输入"lotus",单击"Search"按钮,可以得到一个结果列表,其中就有"www.lotus.com";
5. 插入验证点。点击脚本记录器上的按钮 ,会出现"验证点向导"窗口。按住手形的对象选择器,选中链接"www.lotus.com"(红框高亮显示),以默认的设置创建一个"数据验证点",点击按钮"完成"。
6. 点击脚本记录器上的按钮"停止记录",完成录入过程。
通过以上的操作,我们得到脚本:
public void testMain(Object[] args)
{
// HTML Browser
browser_htmlBrowser(document_htmlDocument(),DEFAULT_FLAGS).click(atPoint(455,108));
browser_htmlBrowser(document_htmlDocument(),DEFAULT_FLAGS).inputKeys("www.ibm.com{ENTER}");
// Document: IBM United States: http://www.ibm.com/us/
text_q().click(atPoint(25,7));
browser_htmlBrowser(document_ibmUnitedStates(),DEFAULT_FLAGS).inputChars("lotus");