Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 我可以使用什么脚本工具来自动测试Delphi程序?_Windows_Delphi_Scripting_Automated Tests - Fatal编程技术网

Windows 我可以使用什么脚本工具来自动测试Delphi程序?

Windows 我可以使用什么脚本工具来自动测试Delphi程序?,windows,delphi,scripting,automated-tests,Windows,Delphi,Scripting,Automated Tests,我正在寻找一个自动化测试的工具。我将使用脚本进行测试,而不仅仅是自动化,这意味着它不能只发送一些按键。它需要检查应用程序的窗口,以查看是否已正确更新。越便宜越好,成本没有下降限制。;-) 我需要一个真正的语言,与函数,变量,循环,分支等,应用程序是在德尔福开发 我需要能够聚焦控件*,等待窗口出现,搜索控件/窗口,发送键盘输入,并检查各种窗口/控件是否已更改状态(例如,按钮现在已禁用,文本框包含正确文本,对话框打开等) 几年前我曾使用AutoIt,现在又开始使用脚本。我不知道在我不在的时候有没有什

我正在寻找一个自动化测试的工具。我将使用脚本进行测试,而不仅仅是自动化,这意味着它不能只发送一些按键。它需要检查应用程序的窗口,以查看是否已正确更新。越便宜越好,成本没有下降限制。;-)

我需要一个真正的语言,与函数,变量,循环,分支等,应用程序是在德尔福开发

我需要能够聚焦控件*,等待窗口出现,搜索控件/窗口,发送键盘输入,并检查各种窗口/控件是否已更改状态(例如,按钮现在已禁用,文本框包含正确文本,对话框打开等)

几年前我曾使用AutoIt,现在又开始使用脚本。我不知道在我不在的时候有没有什么新的发展

有什么建议吗

*我不想移动光标到绝对坐标,以防应用程序的布局发生变化。这句话解释了为什么:

回归测试也成为GUI的一个问题。这是因为GUI可能会在应用程序的不同版本之间发生显著变化,即使底层应用程序可能不会。由于按钮、菜单项或对话框可能已更改位置或外观,因此设计为在GUI中遵循特定路径的测试可能无法遵循该路径。


我在这方面取得了一些成功,它的优点是它是python(jython)代码。它构建在OpenCV之上,使用完整的图像处理引擎对屏幕的各个部分进行模式匹配。它还包含用于屏幕截图、等待更改以及击键和鼠标插入的编辑器和功能。

我相信您刚才已经描述过。

Autoit可以完成您列出的所有功能。我一直用它来对付同样的海豚。此外,Delphi在使用标准windows控件的意义上是很好的,这使得它非常容易挂接。

与我的另一个答案不同:

它有完整的脚本(因为它是Python),它使用控件名而不是X,Y坐标,它等待窗口,您可以发送按键。而且是免费的


缺点应该是显而易见的:)

要使delphi应用程序自动化,我发现的主要问题是,任何测试工具(带有delphi插件的QTP、测试完成、Testanywhere、autoit、sikuli)都无法检测到任何TLabel和Tlist以及其他组件,对于delphi中构建的应用程序来说,这些组件是UI的重要部分。即使要进行基于func的测试,我们最终也需要检查前端的组件,以查看func是否正确。即使要使脚本自动化,我们也需要首先能够检测对象并将其添加到存储库中

我们有一个应用程序,其中我们对很多第三方组件有很大的依赖性。我试着用市场上几乎所有可用的工具来检查可行性。 市场上排名前两位的工具毫无用处

  • 带有Delphi插件的QTP即使在他们公开提到的网站上也没有用,它不支持在Delphi中构建的许多类

  • TestComplete比QTP更好,在QTP中,它可以检测许多组件菜单组件,如果我没记错的话,还有网格等等

  • 经过几次谷歌搜索,我发现

  • TestAnywhere在检测第三方构建组件方面肯定更好。我发现的唯一问题是,它没有检测到Tlabel类,一些组件不记得是哪个
  • 当我谈到检测组件时,它可能是部分的或完全的,即一些工具能够检测到XY坐标处有一个组件,但无法获取组件类或详细信息(如组件属性名称等),否则很难自动化和编写脚本

    其余的都或多或少是以上这些的组合或子集


    还在搜索

    使用TestComplete,如果您将应用程序编译为开放式应用程序,即包含其LIB,则会使您的应用程序超级可检查。非常适合测试,但对安全性来说可能不是最好的。完成测试是最好的,对我的预算来说太贵了


    其中的脚本编写很棒,对Delphi的理解也很棒。价格标签不是很好,特别是如果你想在一个组织内获得GUI测试的吸引力,就像你听起来是这样。

    +1。TestComplete非常昂贵,但对于Delphi和其他工具来说,它是一个完全可编写脚本的测试环境。SmartBear(以前的AutomatedQA)多年来一直在生产像AQTime和TestComplete这样的Delphi友好工具,他们的产品在Delphi领域处于领先地位。其他公司的同类产品,通常用于测试软件,包括Mercury TestDirector和WinRunner,尽管我认为HP WinRunner现在已经不存在了(EOL,不再出售)。使用这种工具的主要原因是,有些应用程序不可能向控件发送单击。所有者绘制控件会出现这种情况(JavaSwing就是一个很好的例子)。此外,值得注意的是,因为编写sikuli只是python/jython,所以如果需要,没有理由不能调用本机窗口代理来发送消息。我正在使用sikuli对WPF应用程序进行自动GUI测试,它的工作非常出色。它内置了JUnit测试——您可以用python编写所有代码,然后点击run(test)按钮。您还可以通过剪贴板处理功能测试文本框等控件的内容。如果它能与WPF一起工作,我看不出有任何理由不能与Delphi一起工作。很高兴听到Mawg。Autoit也提供浏览器应用程序。IE库是内置的,Firefox只需包含FF.au3即可。让您可以完成从单击按钮到遍历DOM的所有操作。哎呀!!1k欧元++