一个用Delphi做的通用UI功能测试方案,大家提提意见

   常见的功能测试软件需要了解DOM或SWT,SWING对象,我觉得简直是多此一举。
   我正在用Delphi做一个验收测试程序,貌似可以男女老少大小通吃,可用于web,SWT,swing,桌面或甚至手机测试,原理是局部截屏,
再通过全屏图像匹配查找,来定位鼠标,模拟键盘输入,并作正确性判断。Delphi本身即做为测试脚本语言,并做数据库清空比对以及日志输出。
   编的过程中有两个难点,不过好在都解决了,一个是图像匹配速度问题,利用到了scanline来快速取点。另一个是表单的输入,如果也用截屏的方法,
反而比较笨拙,好在Delphi自带了Webbrowser,可用于html表单解析,可以两者结合起来用,用于表单项比较多的情况。
   此软件的目的着重于功能测试,不考虑压力测试,也不适用于UI整体配色、背景、字体经常变换的情况。

一个测试更改用户名的脚本示例:

try
  testName:='account';   //指定测试数据存放在\account\目录下
  clickAt('profileLink'); //在全屏查找\account\profileLink.bmp图像,找到后鼠标单击它, 超出一定时限后还找不到则出错
  waitfor('submit');      //等待表单提交link显示出来,直到超时出错
  clickAtRight('username');    //点username.bmp对应的输入栏,鼠标将会点在匹配部分的右边沿中心点,即text input部分,而不是点在文字上
  writekeys(KEY_CLEAR); //模拟键盘输入,将现有内容删除
  writekeys('abc');     //输入一些字符
  clickAt('submit');   //点提交link
  waitfor('success');    //等待成功画面出现
  checkDB('select username from user where userid=`001`','abc'); //比对数据库
  log.add('account test passed!');
except
  log.add('account test failed!');
end;

猜你喜欢

转载自drinkjava.iteye.com/blog/118110