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