我们有一个使用Hp Unified Functional Testing的测试团队.测试和开发团队都共享相同的Git存储库.测试团队中没有人使用HP-UFT中的Git功能,文件被提交并推送到工具之外.
尽管如此,HP-UFT(自动)创建并执行.gitignore文件的提交,如下所示.提交似乎是基于每个项目,并且混乱了git日志.
#UFT ignore section
*.lck
/Res*
#end UFT ignore section
提交不会自动推送.
所有提交的提交消息都是相同的(并且信息量不大):
UFT承诺
如何在Hp Unified Functional Testing(版本12.51)中禁用这种奇怪的行为?为了更清楚,我正在寻找的是一种使工具不执行这些提交的方法.我知道应该忽略这些文件和文件夹,但我宁愿在文件夹层次结构中进一步管理一个.gitignore文件.
谷歌搜索或阅读用户指南没有任何帮助.
我对这个问题表示赞赏,并指出我想要一个包含以下内容的答案:
在赏金到期后,没有答案符合这些条件,因此我试图澄清我想要的答案.
我使用QTP/UFT进行应用程序测试.我不得不访问我的oracle DB(11g)进行一些数据库设置(更新记录).
我使用oracle.manageddataaccess.dll
(引用myDBWrapper类库项目).
我有下面的dlls
(myDBWrapper是我创建的 - 存在问题的地方)
我的连接字符串:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST>)(PORT=<PORT>>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<SERVICENAME>)));User Id=<USERNAME>;Password=<PASSWORD>;
Run Code Online (Sandbox Code Playgroud)
问题:
conn.open()
抛出错误时的下面代码.它有时会工作并且有时会在同一台机器中抛出"对象引用不设置对象实例"的错误.
conn = New OracleConnection()
conn.ConnectionString = ConnectionString
MsgBox("isnothing? : " & (conn Is Nothing).ToString) 'it is always False. So , not null
conn.Open() ' It throws an error that "Object reference not to set an instance of an object"
Dim cmd As OracleCommand = New OracleCommand(strQuery)
cmd.BindByName = True
cmd.Connection = conn
RowsAffected = cmd.ExecuteNonQuery()
cmd.Dispose()
conn.Dispose()
Run Code Online (Sandbox Code Playgroud)
注意:
这不是资源泄漏.我只是建立一个连接并处理掉.没有其他人连接到数据库.
问题发生 - 当QTP有COM lib时.当我使用它来自动化并使其不可见(QTP.Visible …
我们说我传递Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox")
给一个函数:
MyFunction (Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox"))
Run Code Online (Sandbox Code Playgroud)
稍后,该函数想要记录所接收的测试对象的逻辑名称(在这种情况下,当然是"MyBox").
怎么会这样呢?
"name"测试对象属性返回重新添加测试对象时生成的名称. 逻辑名称没有(记录的)测试对象属性. 运行时对象属性不可能包含名称,因为它不是AUT GUI中的名称.
所以我认为测试对象不知道它的名字.只有存储库"知道"测试对象存储在哪个名称下.
所以我将不得不检查存储库本身,而不是测试对象.
该ObjectRepositoryUtil
API允许我(通过GetChildren
,或其他方法)来找到repository's测试对象集合中的测试对象,并使用该GetLogicalName
方法来得到它的名字.精细.
但是,使其工作的唯一方法是通过加载来获取对存储库的引用.我得到的印象是,这个API旨在操纵(或分析)来自QTP外部的回购,而不是来自测试运行.我不想重新加载存储库.我想在一个已经加载的存储库中查找测试对象.
该RepositoriesCollection
API可以告诉其加载(通过其名称和路径)我,但它不提供获取的手段引用到对象实例代表的库之一.
那么我怎样才能获得对已经加载的存储库的引用,所以我可以使用GetLogicalName
?
或者通常问:给定对当前操作的共享存储库中包含的"普通"测试对象的引用,如何以编程方式找到其逻辑名称?
如果有一些超明智QTP向导一拉Motti谁知道这能不能做到,我倒是很欣赏来自他一个答案,即使它写着"不能做"如果这是真的.
例如,假设一个测试呼叫两个动作,A和B A执行通过调用"失败"步骤"Reporter.ReportEvent micFail, ...
"和B进行'’通过调用步骤通过"Reporter.ReportEvent micpass, ...
"
Reporter.RunStatus
micFail
在A中执行失败步骤后立即返回.因此,即使在B中,B的状态完全为"绿色",也无法在"B"分支中判断出没有"失败"步骤当下.报告的测试运行状态Reporter.RunStatus
" micFail
从那时开始.
那么我怎样才能获得当前"分支"的运行状态?
我认为我要找的是当前或当前父级Reporter节点的颜色(即运行状态).
在某种情况下,我试图在QTP中使用select查询(更具体地说,QTP使用VB脚本)但是代码不起作用.
Option Explicit
Dim con,rs
Set con=createobject("adodb.connection")
Set rs=createobject("adodb.recordset")
con.open "Driver={Microsoft ODBC for Oracle};Server=myServer; Uid=USERNAME;Pwd=PASSWORD;"
rs.open "SELECT B.STATUS FROM STUDENT B WHERE B.BATCHCODE='FIRST' ",con
Do while not rs.eof
DataTable.GlobalSheet.AddParameter.RawValue = rs.fields("v1")
rs.movenext
Loop
Release objects
Set rs= nothing
Set con= nothing
Run Code Online (Sandbox Code Playgroud)
请帮助我知道代码的哪一部分导致脚本结果失败.
我创建了一堆 UFT 12(前 QTP)测试,我还创建了一个批处理文件来运行这些测试。
当我在本地运行批处理文件时,测试运行良好。
这是我使用的脚本:
Set qtpApp = CreateObject("QuickTest.Application")
Set fsObj = CreateObject("Scripting.FileSystemObject")
Set qtpResObj = CreateObject ("QuickTest.RunResultsOptions")
qtpApp.Launch
qtpApp.Visible= true
sfolderPath = "C:\QA\ManagerForOracleDB"
Set mainFolderObj = fsObj.GetFolder (sfolderPath)
Set testSubFolders = mainFolderObj.SubFolders
sPath = "C:\&formatDate&\"
For each folderobj in testSubFolders
chkfolderobj = folderObj.Path & "\Action0"
if ( fsObj.FolderExists(chkfolderobj)) then 'The Folder is a QTP test folder'
qtpApp.Open folderObj.Path, True, False
sResultFolderPath = sPath&folderObj.Name & "\Res" 'Set the results location'
qtpResObj.ResultsLocation = sfolderPath
qtpApp.Test.Run qtpResObj , True
strResult = …
Run Code Online (Sandbox Code Playgroud) 我有一个场景,其中浏览器状态=已完成,但仍未加载页面.是否有一个常见的过程,qtp可以等到页面完全加载?我尝试使用objBrowzer.sync,objPage.Sync,objPage.waitproperty"readyState","completed",50.但它总是不起作用.
我甚至不能等待一个等待声明,以便等到该对象出现.因为在不同的情况下,存在不同的对象.是否有任何通用声明适用于所有情况?
提前致谢.
我目前正在尝试从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
那么它会保留该文件夹,但不保存任何内容.在这篇文章之后我可能要清除一些事情,但这种行为是奇怪的,我不知道该怎么做.
我正在使用UFT 12.51在IE11上自动化基于Web的应用程序.这是我的场景:
我必须经过几页才能完成我正在尝试自动化的过程(准确地说是9页).在第4页上,我单击一个打开框架的链接(作为弹出窗口).我输入所需信息,然后单击按钮提交关闭框架的信息,并将我返回到浏览器的第4页.这是我的问题开始的地方:此时UFT停止识别页面上的任何元素.它认为有一个页面,但不知道它有任何子'可见'对象.如果我再次手动点击链接再次显示框架并关闭框架,UFT将再次开始识别页面上的对象.当链接对UFT不可见时,是否有一种方法可以触发链接点击(我有URL)再次打开Frame?如果我能做到这一点,我将能够关闭框架,页面上的对象将再次可见..希望:)
我尝试过像'devicereplay',browser.navigate,sendkeys这样的东西,但它们都没有工作.不幸的是,由于我的应用程序的性质,我无法提供任何屏幕打印.任何帮助都会非常感激,因为我现在已经试图解决这个问题2天没有运气了.
码
Dim oDR : Set oDR = CreateObject("Mercury.DeviceReplay")
' Lets get the X and Y chordinates for 'Next Step' button
Dim iX, iY
iX = Browser("MyBrowser").Page("MyPage").Link("NextStep").GetROProperty("x") + 5
iY = Browser("MyBrowser").Page("MyPage").Link("NextStep").GetROProperty("y") + 5
If MyFunction(dCurrVals, sErrorMsg) Then
LOG_ReportEvent "PASS", "Set Investment/Allocate", "Successfully initialised page"
Else
LOG_ReportEvent "FAIL", "Set Investment/Allocate", sError
End If
'Browser("MyBrowser").Page("MyPage").Object.body.doscroll "scrollbarPageUP"
wait(1)
oDR.MouseMove iX, iY
oDR.MouseClick iX, iY, 0
Set oDR = Nothing
Browser("MyBrowser").RefreshWebSupport
Wait(1)
Browser("MyBrowser").Page("MyPage").Link("Search")
'Browser("MyBrowser").Navigate "MyURL"
'Browser("MyBrowser").Page("MyPage").Sync
'Browser("MyBrowser").Page("MyPage").Link
'Wait(1)
'Browser("MyBrowser").Page("MyPage").Link("Search")
'Browser("MyBrowser").Page("MyPage").WebElement("Search").FireEvent …
Run Code Online (Sandbox Code Playgroud) 如何从启动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() …