我正在使用Marathon(Java桌面应用程序测试工具)来自动化回归测试.Marathon使用Jython,因此我可以使用Java库和Python库.当我的脚本填写某些字段时,会根据我在先前字段中输入的值显示(或不显示)各个字段.我需要跳过那些不存在的字段,原因很明显.当字段被禁用但仍然存在时,这很好,因为我可以使用
if Component.isEnabled():
#do something
else:
#do something
Run Code Online (Sandbox Code Playgroud)
问题是组件不存在时.在Java中,有没有办法测试组件的存在?例如,Component.exists()适合我的需要,但组件类中没有这样的方法.
我宁愿通过使用if Component.exists():语句来解决我的问题,但我能够使用try来解决它,除了块.但是,这会导致脚本的主要执行时间问题.它会在抛出异常之前尝试查找组件约2或3分钟.我能看到这个问题的唯一方法是,如果有类似的声明try for x seconds,如果找不到组件则继续.有没有办法限制你尝试任何给定声明的时间?
我目前正在尝试从VBScript运行一些保存在我们公司的ALM服务器上的QTP/UFT测试脚本.我这样做是因为我希望这些脚本从我们的持续集成服务器运行,而我们当前的CI服务器没有执行类似于Jenkins的HP-ALM插件的QTP脚本的机制.当我打开UFT并运行脚本时,我能够保存结果并查看它们,但这并不能解决我当前的问题,因为那时我必须手动打开脚本并运行它.我正在尝试消除当持续集成服务器可以为我完成时手动启动脚本的开销.我正在设置我的结果位置
Set qtpResultsOptions = CreateObject("QuickTest.RunResultsOptions")
qtpResultsOptions.ResultsLocation = "C:\Path\To\Save\Folder"
test.Run qtpResultsOptions
Run Code Online (Sandbox Code Playgroud)
但是,那里什么也没有得到保存 更重要的是,如果"文件夹"已经存在,它会运行测试,然后该文件夹被删除,但它不会进入回收站.但是,如果我指定结果位置,C:\Path\To\Save\Folder\Results.xml那么它会保留该文件夹,但不保存任何内容.在这篇文章之后我可能要清除一些事情,但这种行为是奇怪的,我不知道该怎么做.
请原谅我对vb.net不熟悉.刚刚投入一个没有vb.net经验的项目.
我必须在应用程序中添加一些内容,这些内容是由不再出现在图片中的人编写的.我必须在组框中添加更多文本框,当我这样做时,它超出了表单的大小.我怎样才能使它能够滚动浏览组合框?
如何从启动QTP测试的.vbs文件中获取测试参数?我可以从.vbs文件运行我的测试,没有任何输入参数就好了,但我似乎找不到从文件中获取参数到测试的方法.
这是我到目前为止:
Set qtp = CreateObject("QuickTest.Application")
'Launch QTP
qtp.Launch
'Set QTP visible
qtp.Visible = True
'Run Mode - Fast
qtp.Options.Run.RunMode = "Fast"
'View Results - True
qtp.Options.Run.ViewResults = True
'Open the test
qtp.open "C:\MY\TEST", True
Set test = qtp.Test
Set params = test.ParameterDefinitions.GetParameters()
parameter1 = "par1"
parameter2 = "par2"
params.Item(par1).Value = "This is my first parameter"
params.Item(par2).Value = "This is my second parameter"
Set qtpResultsLocation = CreateObject("QuickTest.RunResultsOptions")
qtpResultsLocation.ResultsLocation = "C:\SOME\RESULTS\FOLDER"
test.Run qtpResultsLocation
test.Close
Msgbox("Closed test.. closing application")
qtp.quit
Run Code Online (Sandbox Code Playgroud)
我觉得需要某种形式test.ParameterDefinitions.SetParameters() …