DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: botbead
今日帖子: 19
在线用户: 16
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/8 21:56:14
标题:
利用DUnit实现GUI的自动化测试 浏览:670
加入我的收藏
楼主:     不知道大家对GUI的自动化测试关注得多不多?GUI的自动化测试是个难题。一般来说,团队中需要配备专门的测试人员来写自动化测试脚本,这些自动化脚本用第三方工具编写及维护,大部分情况下只能测试一部分比较大的功能,执行速度比较慢,维护也很麻烦。
    前几个月忽然想到用DUnit来写自动化测试,无非就是模拟一下键盘和鼠标的操作嘛。经过一段时间的努力,总算实现了基本的自动化测试功能。我发现,用DUnit可以方便地实现回归测试(废话,这本来就是DUnit的主要目的)。通过这几个月以来的应用,我觉得尤其适合控件的回归测试:以前都是手工测试,每次改点功能,都要手工测试好久,还不能保证质量;现在有了回归测试,至少考虑到的场景都能保证正常工作了。
    附件中有我自己重新封装的日期控件,主要是方便输入日期,并且用空白来表示空值,还实现了连接数据集(TDataSet)。控件本身比较简单,Test子目录下是测试代码。你可以在Delphi RAD 10.x中打开DateEdit.groupproj,然后编译,运行其中的DateEditTests工程,默认是模拟手工测试的慢速模式。当然,你也可以选中测试程序Options菜单下的两个QuickMode子菜单项,那样测试程序就会以很快的速度来运行。
    注意:这个演示程序并没有实现足够的测试代码来保证测试覆盖率。
此帖子包含附件:iamdream_202018215614.zip 大小:87.8K
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/8 21:56:57
1楼: 测试程序界面:
此帖子包含附件:
PNG 图像
大小:34.4K
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/8 21:57:46
2楼: 快速选项:
此帖子包含附件:
PNG 图像
大小:36.2K
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/8 22:03:31
3楼: 以上例子里我只列出了普通GUI的测试,此外还有模态(Modal)界面的测试,包括对话框(Dialog),菜单项的测试。模态界面的测试可以用Timer来实现,菜单的测试则需要用线程来实现。等我有时间整理一下代码放上来。
用DUnit也可以编译成命令行程序,这样就可以每天定时自动运行,实现测试工作的自动化。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 pigbaby (猪宝宝) ★☆☆☆☆ -
普通会员
2020/1/9 8:44:58
4楼: 謝謝分享
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/9 9:14:15
5楼: 这种测试方法自然不能测试界面的绘制是否正确,不过可以用慢速模式配合人工来测试。这样一来,启动测试程序,倒杯茶,一边喝一边查看,也是不错的体验,比手工测试还是要方便好多。当然,对于某些和系统环境有关的东西,只能纯手工测了,比如对Delphi自定义主题(Style)的测试。
此外,还有一个附带的好处:可以录制操作视频!通过视频,就可以更方便介绍控件或界面的功能了。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 gong123456 (DELPHI先生) ▲▲▲▲▲ -
普通会员
2020/1/9 10:37:52
6楼: 这个想法不错,可以解决部分UI测试的问题
----------------------------------------------
-
作者:
男 xlonger (xlonger) ★☆☆☆☆ -
普通会员
2020/1/9 11:08:23
7楼: 呵呵 真没有玩过 这种测试。一直都是人肉的方法,太菜了。
----------------------------------------------
我打的是酱油,而不是别的什么油。
我灌的是口水,而不是别的什么水。
我聊的折腾不是那个不折腾的折腾。
我说的阿娇不是那个邓玉娇的阿娇。
3个代表,6个为什么,9个肠胃炎。
D性强的领导干部都不喜欢热比娅。
我特别要讲的是,屁民网黄色论坛是我经常上网必选的 网站之一
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/9 21:27:32
8楼: 各种对话框的测试程序,包括一个安全密码编辑框,修改密码的窗口以及相关函数:
此帖子包含附件:iamdream_202019212732.zip 大小:30.4K
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/11 16:20:09
9楼: 对话框的测试我只是指定点击第几个按钮,并没有检查按钮文本,这样做的目的是因为系统对话框的按钮文本在不同操作系统下会有不同(比如OK->确定),并且可以通过检查行为来确定结果是否正确。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2020/1/11 23:23:18
10楼: 附上菜单的测试程序。菜单测试起来有些麻烦,测试代码必须在线程中运行,并且选择菜单项只适合用键盘,因为用鼠标要计算坐标,很不方便。
此帖子包含附件:iamdream_2020111232318.zip 大小:41.2K
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行50.78125毫秒 RSS