`
drinkjava
  • 浏览: 21639 次
  • 性别: Icon_minigender_1
  • 来自: 0
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

一个用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;
  • 大小: 28.2 KB
分享到:
评论
10 楼 duronshi 2007-10-02  
各位有什么要求,有什么要求可以统一提出来,我来将它完善下
9 楼 boms 2007-09-26  
不错,很有意思的咚咚
8 楼 borland 2007-09-26  
建议:lz可以做成按键精灵类似的可编程咚咚。
7 楼 drinkjava 2007-09-09  
不开源了不开源了,已删除
6 楼 drinkjava 2007-09-05  
东西很简单,现在没时间整理,周未我会把源码放上来,有兴趣的话可以down下来,然后爱整么改整么改。因为非常简单,数据准备(Prepare)和测试都放在一起,新的测试项目只要把项目另存一下即可。
5 楼 tiyi 2007-09-02  
这个东西很有意思,我也是delphi fans,楼主有没有什么构建计划?大家讨论讨论,也许可以一起实现。
4 楼 drinkjava 2007-08-30  
yananay 写道
还有比较麻烦的一点就是,必须测试数据必须是图片才可以.
另外你如何得到程序界面上的信息?也是通过图片?

  是的,我现在程序做法是先设好测试方案名,手工输入图片名称(如不输入将默认以数字序号自动递增生成,以后再手工改成有意义的名字,可以参见第一贴中的贴图),然后鼠标右键在屏幕任意位置按下,拖放,再松开,就可以截得存放在测试目录里的图片了,也不是太麻烦。用鼠标右键而不是左键和中键是因为右键拖放基本上不影响待测程序画面,当然也可采用键盘快捷键之类的。
  取图有个麻烦的地方是,如果要取的图片在屏幕上有多个时,例如有多个长得一样的提交按钮,要借助于它旁边的图片文字来定位,截图时取大一点,或在脚本中指定第几张图,如写成 clickAtTopRightNo('xxxx',3);这表示在全屏从左到右,从上到下开始找xxxx.bmp,以找到的第3张图片为准,并鼠标点击在它的右上角。
3 楼 yananay 2007-08-30  
还有比较麻烦的一点就是,必须测试数据必须是图片才可以.
另外你如何得到程序界面上的信息?也是通过图片?
2 楼 drinkjava 2007-08-30  
yananay 写道
优点: 如果真的通用,就是最大的优点

缺点:
1、需要花钱买delphi
2、需要学习 object pascal

    语言并不重要,关键是思路,用JAVA,VC,VB也都能做,但要同时与键盘、鼠标、屏幕图形、数据库、日志文件还有一个鼠标截屏Hook这些东西打交道,Delphi算是比较方便的,至于要学习Object pascal却不一定,编测试用例时,把整个项目另存一下,然后添加新单元,只要调用已写好的方法即可,一般不需要自已再写新方法,这里是它当作脚本来使用,基本上不需要对Delphi了解多少。
1 楼 yananay 2007-08-30  
优点: 如果真的通用,就是最大的优点

缺点:
1、需要花钱买delphi
2、需要学习 object pascal

相关推荐

    delphi directui 做界面的一个例子

    总结来说,"delphi directui 做界面的一个例子"是一个实践性的教程,它通过源码展示了如何在Delphi中利用DirectUI技术创建出具有现代感和高度定制化界面的应用程序。这个例子涵盖了界面设计、事件处理、多语言支持等...

    Delphi-UI.rar

    总之,"Delphi-UI.rar"是一个宝贵的学习资源,它可以帮助你提升在Delphi中设计高效、美观用户界面的能力,特别是对于那些希望在老版本Delphi环境中实现DirectUI技术的人来说。通过深入研究源码,你可以学习到Delphi...

    XeFramework 一款轻量级的Delphi通用系统UI框架

    一款轻量级的Delphi通用系统UI框架,基于MlSkin皮肤组件构建 功能特性(Feature): 框架UI界面设计简洁、轻量、时尚和风格统一,代码一看就懂,容易上手和维护 框架代码部分采用模块化设计,代码之间的耦合度低,旧...

    wke + delphi + Miniblink delphi 开发 webui最佳组合

    在IT行业中,开发WebUI(Web用户界面)的工具和技术多种多样,而“wke + Delphi + Miniblink Delphi”被推崇为一个高效且功能强大的组合。这个组合主要适用于那些希望在桌面应用程序中嵌入Web浏览功能的开发者,尤其...

    Delphi简单DirectUI界面源码Unicode版

    Delphi简单DirectUI界面源码Unicode版 原始链接 http://blog.csdn.net/cometnet/article/details/9227179 http://download.csdn.net/detail/cometnet/5687875

    Delphi7_DirectUI_简单界面源码

    【标题】"Delphi7_DirectUI_简单界面源码" 涉及到的是使用 Delphi 7 开发工具,结合 DirectUI 技术创建一个具有美化效果的简单用户界面。Delphi 7 是一款经典的面向对象的编程环境,基于 Pascal 语言,广泛用于 ...

    Delphi10_2_简单DirectUI界面开发

    8. **调试和测试**:使用Delphi的调试工具对DirectUI代码进行调试,确保界面在不同设备上的表现一致。 通过这个教程,你将掌握在Delphi 10.2中结合DirectUI创建独特、高性能用户界面的技巧。实践是检验真理的唯一...

    Delphi仿QQUI全部源码.zip

    "Delphi仿QQUI全部源码.zip"这个资源正是基于Delphi FMX框架的一个项目,其目标是复刻QQ的用户界面,不仅适用于桌面系统,还能直接编译为手机应用,充分展示了Delphi跨平台开发的强大能力。这份源码对于学习者来说,...

    免费的Delphi DirectUI界面库组件

    Wise XUI是一套成熟的免费的Delphi界面库组件。它采用DirectUI技术,完全脱离Windows绘制机制;采用Graphic32内核,拥有强大的图形绘制性能;100% Pascal源码,不需要第三方库的支持;100%支持PNG;支持透明效果;...

    Delphi移动程序通用界面设计(D10UP1第7版本定稿).zip

    《Delphi移动程序通用界面设计》是针对使用Delphi开发跨平台移动应用的专业教程,其第7版本在D10UP1的基础上进行了优化和完善。这个资料包提供了详细的设计方案和实践指南,帮助开发者构建出美观、高效且适应多平台...

    Delphi7-10_DirectUI 支持Unicode.rar

    标题中的"Delphi7-10_DirectUI 支持Unicode.rar"表明这是一个关于使用DirectUI库在Delphi 7到Delphi 10版本中实现Unicode支持的资源包。DirectUI是Microsoft DirectX的一部分,它提供了一种创建高效、自定义用户界面...

    delphi directui界面的例子

    总之,"delphi directui界面的例子"提供了一个宝贵的学习资源,帮助开发者深入理解如何在Delphi中使用DirectUI技术来打造引人入胜的用户界面。通过研究源码,你可以提高自己的Delphi编程技能,并在未来的项目中应用...

    Delphi界面美化之 - 简单DirectUI界面源码

    本主题关注的是如何使用Delphi进行界面美化,具体来说,是通过实现一个类似360杀毒软件的DirectUI界面来提升应用的视觉效果。DirectUI是一种用户界面技术,它允许开发者创建更精美、更具交互性的图形界面。 首先,...

    Delphi实现通用指令打印

    本主题聚焦于“Delphi实现通用指令打印”,这是一个使用Delphi编程语言实现的解决方案,旨在提供一种灵活的打印机制,能够处理文字、图片、走纸、切纸以及控制开钱箱等功能。这一技术主要针对支持EPSON RS232通信...

    delphi 之通用查询

    在IT行业中,Delphi是一种基于Object...通过以上描述,我们可以看出"Delphi之通用查询"是一个全面的数据库操作工具,结合了数据库连接、查询设计、数据展示和用户交互等功能,为用户提供了便捷的数据库管理和分析手段。

    采用directui做的一个delphi 仿杀毒软件界面的demo.rar

    在这个"采用directui做的一个delphi 仿杀毒软件界面的demo"中,开发者可能利用了DirectUI的功能来增强Delphi默认界面控件的视觉效果。这可能涉及到创建自定义控件,或者使用DirectUI库中的组件来实现更现代、动态的...

    DELPHI技术方案宝典

    DELPHI技术方案宝典是一份集合了众多DELPHI编程技术、解决方案和实践经验的珍贵资料,对于 DELPHI 的学习者和开发者来说,无疑是一份极具价值的资源。DELPHI,作为一款强大的面向对象的编程语言和集成开发环境(IDE...

    delphi开发的通用的功能组件包封闭了常用的方法

    在你提到的“delphi开发的通用的功能组件包封闭了常用的方法”,我们可以理解为这是一个专门针对Delphi开发者的工具集,它封装了一系列常用功能,使得开发者能够更高效地进行软件开发。 首先,组件包的核心理念是...

    Delphi-DirectUI:Delphi DirectUI控件

    JDUI是一套Delphi DirectUI界面引擎,基于Graphics32并做了大量针对性的性能优化,支持高DPI缩放, 具有非常优秀的渲染性能和酷炫的动画特效,本项目开发于2013年,一直给自己项目使用,已上线运营案例: ...

Global site tag (gtag.js) - Google Analytics