hudemou 发表于 2012-9-20 17:14:17

qtp函数库中函数调用问题

在flight程序测试中,将测试脚本写入函数库中进行调用。
SystemUtil.Run Environment.Value("ProductDir") & "\samples\flight\app\flight4a.exe"
Dialog("Login").WinButton("Help").Click
capture()                      '点击help按钮,截图
hint1 = Dialog("Login").Dialog("Flight Reservations").Static("outlook").GetROProperty("text")   ' hint1=提示框中的语句
Ifhint1 = "The password is 'MERCURY'" Then         
f1.writeline("出现帮助界面!      " & hint1 & "   测试正确!   " &filename)

这里的截图函数能够截取桌面图片,但是定义的截图路径filename却取不出来。

If len(username)<7 Then
username=username&space(7-len(username))
end If
If len(password)<7 Then
password=password&space(7-len(password))
End If
If len(hintbook)<46 Then
hint_msg =hint_msg&space(46-len(hint_msg))
End If
f1.Writeline( username & "##"&password &" ## " & hint_msg&" ##"&expect&" ## "&explain&" ## "&filename)

如果把上面的控制字符串长度写成函数库中的函数调用,输出结果无法对齐。
但是将代码直接写在action中调用能够正常对齐写入。

softCore 发表于 2012-9-23 21:41:06

1. 首先,这个代码是你自己写的吗?我想应该不是,不知道是从哪里抄来的。
里头的capture不是QTP提供的built-in函数,所以这个函数应该是放在某个地方,需要倒进来当前的运行环境。一个如果你要截取全屏的正确写法是Desktop.CaptureBitmap fileName, True这里的fileName你需要提供一个具体的值。

2.不能对齐的原因可能是你的输入的数据有空格。你可以在使用username和password的地方,都使用trim(username)。

3.编码风格真tm烂

hudemou 发表于 2012-9-24 17:57:45

截图函数式封装在函数库中的,现在是被同在函数库中的testhelp函数调用
整个action中只有:
dim filename
call testhelp()
这两句。

Public Function capture()
    Dim datestamp
    datestamp = Now()
    filename = Environment("TestName")&"_"&datestamp&".png"
    filename = Replace(filename,"/","")
    filename = Replace(filename,":","")
    filename = "e:\"&"picture\ "&filename
    Desktop.CaptureBitmap filename
End Function
能够正常的截取图片,但是不能将filename写入txt文件中。
如果在action(testhelp)中直接调用截图函数,可以得到filename。

PS:新手上路,编码风格确实烂,亟待提高!
但这个代码肯定是我写的,抄也抄不到这么差的代码。
页: [1]
查看完整版本: qtp函数库中函数调用问题