大约一年半以来,我一直在使用 SilkTest,它是一种 GUI 自动化工具,适用于桌面和 Web 应用程序。它模拟鼠标和键盘输入,最终模拟最终用户行为。但是,我发现它有点片状;连续 9 次正常工作的 Button.Click() 或 DialogBox.Close() 方法调用似乎在第 10 次调用时失败,只是在第 11 次返回工作。通常我会把这归结为 SilkTest(或测试下的应用程序,或操作系统,或者你有什么)的一个怪癖,但后来我发现其他 GUI 自动化工具(如 Selenium)也存在类似问题:
我知道对于桌面应用程序,每个 GUI 控件/对话框都有一个与之关联的标签元素(至少在基于 Windows 的 GUI 中),而对于网页,则有页面元素的域对象模型层次结构。我的猜测是,这些工具有时会在导航这些层次结构和查找独特元素和控件时遇到问题。但是这里发生了什么?SilkTest 是一个相对较旧的商业软件包,而 selenium 相对较新、开源且不断发展。他们都可能有类似问题的事实引起了我的注意。
另外,其他 GUI 测试工具也是这种情况吗?还是我刚刚经历了一些不寻常的经历?