问题标签 [gui-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2634 浏览

timeout - QTP 恢复方案用于“跳过”具有 0 超时的连续 FAILED 步骤——如何恢复原始超时值?

假设我使用 QTPs 恢复场景管理器将播放同步超时设置为 0。处理程序将返回“继续执行下一条语句”。

我这样做是为了确保任何以下播放语句都不会在失败之前浪费时间等待下一个不存在/不匹配的步骤:

我有很多 GUI 测试会卡住,因为假设如果缺少 10 个控件,它们的(连续)播放步骤会在失败之前产生 10 个超时等待。如果播放超时为 30 秒,我会失去 10x30 秒 = 5 分钟的执行时间,而一次等待 30 秒就足够了(因为应用程序不再更改——我们已经等待了一个完整的超时时间)。

现在,如果我有 100 个测试用例(=动作迭代),这可能会发生 100 次,浪费了 500 分钟的测试执行时间窗口。

这就是为什么我想出一个恢复场景函数的想法,在第一个失败的播放步骤之后/之后将超时设置为 0。这将加快速度,同时跳过正确失败的步骤,但不会影响识别下一个匹配的 GUI 上下文(创建通过步骤)的精度/可靠性。

然后当然在下一个通过的播放步骤中,我想恢复原始超时值。我怎么能那样做?这是我的问题。

无法定义为 PASSED 步骤调用的恢复方案函数。

我目前正在考虑为 Reporter.ReportEvent 设置一个方法函数,并在那里“嗅探” PASSED 日志条目。我会在将超时设置为 0 的场景恢复函数中安装该方法函数。然后,当“嗅探器”函数在以下播放步骤之一期间检测到具有 PASSED 状态的 ReportEvent 调用时,我将重置所有内容(即恢复原超时,并卸载方法功能)。(但是,我 99% 确定 .Click 和 .Set 方法不会调用 ReportEvent 来写入它们的结果状态……所以这个选项可能不起作用。)

更好的想法?这真的让我很烦。

0 投票
1 回答
2937 浏览

automated-tests - QTP 恢复场景触发的函数必须驻留在自己的库中?

我在我的一个函数库中插入了一个函数(在测试的资源设置中引用)。它看起来像这样:

(显然,我处于探索阶段;)

我还创建了一个恢复场景,上面写着“在错误'找不到对象'时调用 NWRecoverOnRunStep”,将其保存为恢复场景文件,并将该文件与我的测试相关联。

当我现在运行测试时,QTP 说“库文件中的错误。”,blabla,加上详细信息:

(我在所有库中都使用显式选项。)(并且:当然,“Dim CaptchaCheckActive”是库中定义的第一个全局变量,库 mylib.qfl 包含此声明和恢复处理程序。)

问:这是因为库两次链接到我的测试,一次是我的“传统”函数库,另一次是包含我的恢复场景函数?

备选问:恢复场景处理函数是否必须驻留在它们自己的函数库中,即与我的其他用户定义函数分开?

我没有在dox中看到这一点。

0 投票
2 回答
480 浏览

com - 在 Windows 应用程序中获取控件名称

在我对 Stackoverflow 的搜索中没有找到这个 - 我知道我以前见过类似的工具,用于在 Windows 应用程序中获取控件名称或 ID,然后可以在 AutoIt 等工具中用于自动化测试中的参考。谁能推荐一个?

我试过 OLE/COM 对象查看器,虽然它有控制列表,但它没有交互方法。就像 Firefox 中的 Web 开发人员工具包一样,您可以单击一个控件并获取有关它的所有信息,我正在寻找一个用于 Windows 测试的类似应用程序。

0 投票
1 回答
1925 浏览

testing - QTP:为什么 IE 中的 PDF 页面不是 Page 对象(就像所有其他页面一样)?

在使用 QTP 10 查看 IE 网页时,Object Spy 会报告一个 Browser 对象,其中包含一个 Page 对象,其中包含其他元素。好的。

现在,如果我在同一个浏览器中查看 PDF,该页面将被识别为包含在 Browser 对象中的 WinObject 对象。

没有 Page 对象,什么都没有。

这不仅限于间谍。如果您尝试从 QTP 脚本寻址包含 PDF 的页面,则会失败。您必须寻址 WinObject 对象。

为什么?

它(当然)像其他页面一样显示为一个页面,只包含一个 ActiveX 控件。

我相信早期版本的 QTP 确实发现了这一点,而不是通用的 WinObject 对象。

安装的 Adob​​e Reader 版本是 9.2.0。IE 是 7.0.5730.13。

0 投票
1 回答
270 浏览

selenium - 是否可以用硒进行低级像素检查?

是否可以使用 Selenium 检查浏览器呈现页面中特定像素的值?我可以将渲染页面的缓冲区作为图像吗?

另外,是否可以向浏览器发送鼠标向下滚动命令?

干杯

0 投票
1 回答
2666 浏览

swing - FEST JUnit-Swing 测试 noobQ:如何测试一个主类?

尽管阅读了这里的教程,但我似乎无法理解如何让 FEST 与我的应用程序一起工作。

我在一个大类中有一个 Swing 应用程序,它有一个 main 方法和几个 SwingWorker 类。我想测试我的应用程序,就好像我通过 main 方法运行它一样。该教程似乎只给出了如何测试单个组件的说明。

我的 ApplicationWindow.class 的微型版本,其中包含主要方法:

我的测试类抛出错误。

}

运行此测试时抛出的错误:

似乎跑步者没有找到我的组件,这让我相信我误解了如何测试这种东西。非常感谢任何为我指明正确方向的帮助。

0 投票
4 回答
31709 浏览

java - 自动化 GUI 测试

我正在使用 Netbeans IDE 6.9 编写 Java 桌面应用程序 (SWING)。我想做自动化的 GUI 测试。我所知道的关于测试的只是 JUnit 测试,它不适用于我的 GUI 应用程序。是否有我可以用来测试 GUI 应用程序的特定测试框架,那里有好的吗?哪些易于使用(我需要进行测试,但我没有太多时间,但是,我不想忽略这一点)。我的应用程序基本上是一帧,有 3 到 4 个选项卡(不是很大),我的测试不应该很复杂,那么是否有一个简单的框架可以让我快速测试我的应用程序并以一种强有力的方式发现错误?

谢谢

0 投票
0 回答
900 浏览

perl - 使用 Win32::GuiTest 从网格显示控件 (AfxWnd42s) 中获取数据

我目前正在编写一些 perl 脚本来测试我们的一个 GUI 应用程序。我使用 perl 的 Win32::GuiTest 作为基础,它在大多数情况下都非常实用。但是,我现在被困在试图从网格控件中获取数据(不确定小部件的实际名称是什么,因为这应该是黑盒测试)。使用 WinSpy++,我可以看到它的类是“AfxWnd42s”,不管这意味着什么。我可以使用以下代码获取窗口句柄:

text 和 wintext 都不包含任何值,即使网格控件中有数据。我已经尝试了许多不同的 GetWindowLong 选项,但似乎没有任何关于网格内容的返回。另外,我正在扫描的窗口没有孩子。我被困住了。

不幸的是,我无权访问代码或开发环境来构建应用程序。我只能通过 WinSpy++ 告诉我的有关窗口组件的内容。

0 投票
1 回答
8652 浏览

testing - 使用 SWTBot 测试 SWT GUI

我想用SWTBot测试一个简单的 SWT GUI 应用程序。不幸的是,我不知道如何开始。有几个教程描述了 Eclipse 插件的测试,但我找不到任何关于我的问题的内容。我什至不知道这是否可能。

0 投票
1 回答
1012 浏览

testing - 黑莓的 UI 测试工具

是否有任何可在 BlackBerry 平台上运行的 UI 测试工具?以下是我对这个问题的了解:

  1. 有一些工具可以提供单元测试工具,例如 J2MEUnit(移植)、B-Unit、RIMUnit
  2. 有一个 EventInjector API,允许您注入自定义 UI 事件
  3. BlackBerry Simulator 能够通过 FledgeController 应用程序使用脚本命令。这提供了向模拟器发出几类事件的能力:网络覆盖、gps 协调、外围设备插头、特定输入事件,如轨迹球滚动/点击等

尽管如此,我还没有找到一个可行的解决方案,让您有机会自动化 BlackBerry 应用程序的 UI 测试。我们正在开发的应用程序有很多品牌,甚至烟雾/健全性测试也需要大量的人工操作。