自动化测试结构论
作者:网络转载 发布时间:[ 2010/9/14 9:10:07 ] 推荐标签:
可以看出这是个自动化测试脚本,但是至少让我在短时间内看不出脚本与对象之间的关联,这种脚本设计相对比较失败。有的时候,软件行业充斥着“自己好用,用户好用”的研发思维,过于突出于技术而忽略了用户体验。如果这些你都可以快速适应,那么让我再增加一些脚本量:
Start Main()
SetWindow ( “Caption=Scical”, “”)
PushButton.Click(”ObjectIndex=3″) //46
PushButton.Click(”ObjectIndex=21″)
PushButton.Click(”ObjectIndex=3″) //+
PushButton.Click(”ObjectIndex=8″) //5212
PushButton.Click(”ObjectIndex=32″)
PushButton.Click(”ObjectIndex=37″)
PushButton.Click(”ObjectIndex=32″)
PushButton.Click(”ObjectIndex=27″) //=
Result = Compare (CompareProperties, “Object.Text”, “5258. “) //比对结果
End Main
看了上面的脚本组成方式,我相信很多实际从事测试行业的人员都是强烈排斥的,这些脚本越多会让整个自动化测试项目在脚本重构,业务分拆和项目管理上陷入巨大的困境,进而加速整个自动化测试项目的死亡。在TestMice中采用一种比较贴切使用者,能快速理解,用极低的培训成本即可达到快速书写测试脚本的方式。并且,这种脚本组成方式便于其维护、分解和重构,例如在对“计算器”程序进行加减乘除运算测试中,TestMice的脚本组成方式为:
Window(”计算器”).Button(”4″).click();
//或者Window(”windowtext=’计算器’”,”HWND=’234985′”).Button(”4″).click();附加属性匹配
//或者Window(”windowtext=’^计算*’”).Button(”4″).click();附加属性正则表达式匹配
//或者Window(”算”).Button(”4″).click();模糊匹配
Window(”计算器”).Button(”+”).click();
Window(”计算器”).Button(”5″).click();
Window(”计算器”).Button(”=”).click();
Assert(Window(”计算器”).Edit(”").getText().trim(”",”.”),”9″);
看起来类似某商业自动化测试工具的脚本,其实好的设计概念大家都可以学习并加以沿用,如果是对多数字进行操作,我们可以写成这样:
public static function mockNumberDClick(String number)
{
for(int i=1;i<=len(number);i++)
{
Window(”计算器”).Button(right(number,i,1)).click();
}
}
mockNumberDClick(”20″)
Window(”计算器”).Button(”+”).click();
mockNumberDClick(”20″)
Window(”计算器”).Button(”=”).click();
Assert(Window(”计算器”).Edit(”").getText().trim(”",”.”),”40″);
或者可以更进一步的增强加减乘除运算,例如:
public static function mockComputing(String num1,String operator,String num2)
{
… …
}
mockNumberDClick(”20″,”+”,”20″)
Assert(Window(”计算器”).Edit(”").getText().trim(”",”.”),”40″);
mockNumberDClick(”2.543″,”+”,”11″)
Assert(Window(”计算器”).Edit(”").getText().trim(”",”.”),”13.543″);
mockNumberDClick(”-2.”,”+”,”10″)
Assert(Window(”计算器”).Edit(”").getText().trim(”",”.”),”8″);
测试人员既要实现测试动作逻辑,又要特别关注测试数据的选取,如果可以让测试人员从脚本中快速的获知对象关联,降低他在这块的开发时间,那么这个设计是成功的。简单的设计即可达到佳用户体验,这也是TestMice一直追求的。

sales@spasvo.com