1.报告生成函数
注意:这里的GetTOProperty("testObjName")是一个隐藏属性,可以获取QTP对象库里的对象的LogicName:
private Function HReport(ExpectedValue,ActualValue,testStatus,nodename)
Set oEventDesc=CreateObject("Scripting.Dictionary")
'添加状态
oEventDesc("Status")=micFail
'添加是否过滤
oEventDesc("EnableFilter")=False
'添加节点名称
oEventDesc("NodeName")=nodename
'添加HTML结果
oEventDesc("StepHtmlInfo")="<TABLE border='1'>"&_
"<TR><TD>Actual Value</TD><TD>"+ExpectedValue+"</TD></TR>" & _
"<TR><TD>Expected Value</TD><TD>"+ActualValue+"</TD></TR>" & _
"<TR><TD>Checkpoint Status</TD><TD style='background-color:red'><b>Failed</b></TD></TR>" & _
"</TABLE>"
'判断状态
If testStatus Then
oEventDesc("Status")=micPass
oEventDesc("StepHtmlInfo")=Replace(oEventDesc("StepHtmlInfo"),_
"<TD style='background-color:red'><b>Failed</b></TD>","<TD style='background-color:green'><b>Passed</b></TD>")
End If
'生成报告
newEventContext = Reporter.LogEvent ("Replay",oEventDesc,Reporter.GetContext)
'释放资源
Set oEventDesc = nothing
End Function
Set oEventDesc=CreateObject("Scripting.Dictionary")
'添加状态
oEventDesc("Status")=micFail
'添加是否过滤
oEventDesc("EnableFilter")=False
'添加节点名称
oEventDesc("NodeName")=nodename
'添加HTML结果
oEventDesc("StepHtmlInfo")="<TABLE border='1'>"&_
"<TR><TD>Actual Value</TD><TD>"+ExpectedValue+"</TD></TR>" & _
"<TR><TD>Expected Value</TD><TD>"+ActualValue+"</TD></TR>" & _
"<TR><TD>Checkpoint Status</TD><TD style='background-color:red'><b>Failed</b></TD></TR>" & _
"</TABLE>"
'判断状态
If testStatus Then
oEventDesc("Status")=micPass
oEventDesc("StepHtmlInfo")=Replace(oEventDesc("StepHtmlInfo"),_
"<TD style='background-color:red'><b>Failed</b></TD>","<TD style='background-color:green'><b>Passed</b></TD>")
End If
'生成报告
newEventContext = Reporter.LogEvent ("Replay",oEventDesc,Reporter.GetContext)
'释放资源
Set oEventDesc = nothing
End Function
2.验证函数-调用第一个报告生成函数自动判读成功与失败
Function ValidateProperty (Object, PropertyName, ExpectedValue)
'判断预期是否与实际值相等
If Object.GetROProperty(PropertyName)=ExpectedValue Then
'成功
HReport ExpectedValue,Object.GetROProperty(PropertyName),true,_
"check "+Object.GetTOProperty("testObjName")+"<"+PropertyName+">属性"
ValidateProperty=True
Exit Function
Else
' 失败
HReport ExpectedValue,Object.GetROProperty(PropertyName),false,_
"check "+Object.GetTOProperty("testObjName")+"<"+PropertyName+">属性"
ValidateProperty=False
Exit Function
End If
End Function
Function ValidateProperty (Object, PropertyName, ExpectedValue)
'判断预期是否与实际值相等
If Object.GetROProperty(PropertyName)=ExpectedValue Then
'成功
HReport ExpectedValue,Object.GetROProperty(PropertyName),true,_
"check "+Object.GetTOProperty("testObjName")+"<"+PropertyName+">属性"
ValidateProperty=True
Exit Function
Else
' 失败
HReport ExpectedValue,Object.GetROProperty(PropertyName),false,_
"check "+Object.GetTOProperty("testObjName")+"<"+PropertyName+">属性"
ValidateProperty=False
Exit Function
End If
End Function
这里的验证函数使用了测试对象的抽离技术。调用时可以直接把对象传入,把以上两个函数都存放在函数库中,然后直接调用验证函数(ValidateProperty)即可:
set oWebEdit = Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd")
ValidateProperty oWebEdit,"name","wd"
ValidateProperty oWebEdit,"name","wd1"