我们使用Watir和AutoIT在Windows上使用IE测试我们的网络应用程序。在处理本机Windows对话框(如用于上载的Windows文件对话框)中Watir不足时,使用AutoIT。
由于AutoIT,我们无法使用任务计划程序运行测试,因为Watir代码的AutoIT操作需要交互式桌面会话。
我们尝试了一些技巧(来自RDP的RDP等),但没有成功,也无法实现真正的自动化。
有什么想法吗?如果它可以帮助我们实现真正的end2end测试自动化,那么打开更换AutoIT。
答案 0 :(得分:2)
当我们从作为服务运行的TeamCity代理开始运行测试时,我们遇到了类似的问题。这是因为您尝试从非交互式服务运行交互式进程。我们切换到让TeamCity代理作为正常流程运行,问题就消失了。
您可能希望查看构建管理服务器以处理运行此服务器而不是仅使用任务计划程序,但无论哪种方式,您都希望避免将测试过程作为服务运行。
答案 1 :(得分:1)
您需要使用以用户权限运行的调度程序。我以前用过CruiseControl.Net来做这件事。
如果您的进程没有用户权限,则无法访问桌面窗口,无论您使用的是Watir,AutoIT还是其他工具,都需要这些窗口。这是权限问题,而不是工具问题。
答案 2 :(得分:-1)
我会取代Watir。 ;)
我不太确定Watir,但我相信它只是InternetExplorer.Application
COM对象的包装器,您可以直接从AutoIt及其所有功能,通过ObjCreate("InternetExplorer.Application")
或通过IE Management
部分中列出的用户定义函数。
我确信您只能在AutoIt中编写所有测试方案的脚本。为什么需要交互式桌面会话?
答案 3 :(得分:-1)
我用iMacros替换Watir。它是一个商业解决方案,但它可以处理下载对话框等。与Autoit不同,它可以同时管理的多个实例。