首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GUI自动化测试.窗口处理问题

GUI自动化测试.窗口处理问题
EN

Stack Overflow用户
提问于 2008-08-20 20:03:28
回答 5查看 2.4K关注 0票数 3

我们公司目前正在为紧凑的框架应用程序编写GUI自动化测试工具。我们最初搜索了许多工具,但没有一个适合我们。

通过使用该工具,您可以记录测试用例并将它们分组到测试套件中。对于每个测试套件,都会生成一个应用程序,它启动被测试的应用程序并模拟用户输入。

一般来说,这个工具工作正常,但是由于我们使用窗口处理来模拟用户输入,所以您不能做很多事情。例如,我们不可能获得控件的名称(我们只是得到标题)。

使用窗口句柄的另一个问题是检查更改。目前,我们模拟对控件的单击,并根据结果知道应用程序是否已进入下一步。

还有其他(更简单的)方法来做这样的事情(例如消息队列或其他任何事情)吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-08-20 20:17:00

如果Automated测试工具对框架有了解,那么它可以使用这些信息来生成更好或更高级的脚本。例如,TestComplete知道Borland的VCL和WinForms。如果使用测试应用程序生成,则该内建具有高级支持。

票数 1
EN

Stack Overflow用户

发布于 2008-08-20 20:33:28

有趣的问题!我已经有一段时间没有做过任何低级的(比如Win32) Windows编程了,但是我会这样做。

使用命名管道并让您的应用程序监听它。使用这个命名管道作为通信介质,实现一个真正简单的协议,您可以根据它的HWND或其他您认为有用的东西查询应用程序的名称。确保协议足够丰富,以便在应用程序和测试框架之间交换足够的信息。确保测试框架不会从应用程序中产生太多的“特殊行为”,因为这样您就不会真正测试这些特性,而是测试框架。

可能有更优雅和更酷的方法来实现这一点,但这是我从头脑中记得的,只使用简单的Win32 API调用。

另一种方法,我们已经为我们的产品在工作中实现,是记录用户事件,如鼠标点击和关键事件的事件脚本。这应该足够丰富,以便让应用程序回放它,人为地将这些事件注入消息队列,并使其行为与第一次记录脚本时的行为相同。在播放脚本时,您基本上是模拟用户的。

除此之外,您还可以记录任何重要的状态(用户的文档、首选项、GUI控件层次结构等),一次记录脚本,一次回放。这为您提供了两组可以比较的数据,例如,确保所有的数据都保持不变。该解决方案为您提供了不易修改的测试(如果GUI更改,您必须重新记录),但这提供了非常棒的回归测试。

(编辑:这也是测试版测试期间一个很棒的QA工具,例如:让用户记录他们的操作,如果有崩溃,您很有可能通过播放脚本轻松地再现问题)

祝好运!

卡尔

票数 2
EN

Stack Overflow用户

发布于 2008-11-12 09:42:00

使用NUnitForms。我已经成功地将它们用于单线程和多线程应用程序,您不必担心手柄之类的问题。

下面是一些关于NUnitForms的文章,值得一读

NUnitForms和失败的DragDrop注册- MTA对STA的问题

用NUnitForms编译应用程序exe测试

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档