风过无息 发表于 2007-5-9 16:15:41

QTP学习分享(更新20070728)

1.在测试中我们使用QTP调试脚本的时候一般就是DEBUG或者MSGBOX察看一些信息,其实有时候也可以使用print来实现批量的察看信息但是不影响程序运行.
运行脚本:
a="100"
print a
~~~~~~~~~~~~~~~~~~~~~~~~~
2.取datatable特定行的数据可以这样使用
运行脚本:
DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(4)
~~~~~~~~~~~~~~~~~~
3.Wait Seconds [, Milliseconds]可以精确到毫秒.
~~~~~~~~~~~~~~~~~~
4.在自定义的function里面数组作为返回值.
运行脚本:
circuit = "399937"
Function trimString(circuit)
Dim holdArray(5)
holdArray(0) = Left(circuit, 2)
holdArray(1) = Right(circuit, 2)
msgbox holdArray(0) 'showed 39
trimString = holdArray' I get an out of range error here
End Function
dim myArray
'here I want to assign the return array to another array
myArray = trimString(circuit)
' and then call one element from it
msgbox myArray(1)
~~~~~~~~~~~~~~~
5.计算一个操作的时间.
运行脚本:
Browser("Browser").Page("Page").Image("getRates").Click
var_StartTime = Timer
Browser("Browser").Page("Page").Sync
Browser("Browser").Page("Page").Check CheckPoint("Check1")
var_EndTime = Timer
intRespTime = round ((var_EndTime - var_StartTime), 2 )
msgbox (intRespTime)
~~~~~~~~~~~~~~~
6.取得指定sheet(datatable)的行数和列数(也可以理解为参数个数)
paramcount = DataTable.GetSheet("Action1").GetParameterCount
msgbox "There are " &paramcount&"columns in the data sheet."
rowcount = DataTable.GetSheet("Action1").GetRowCount
msgbox "There are " &rowcount&"rows in the data sheet."
~~~~~~~~~~
7.一种设置全局变量的方法GlobalDictionary
'Part 1.
'***********************************************************************************************************
Dim WshShell
Set WshShell =CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Mercury Interactive\QuickTest Professional\MicTest\ReservedObjects\GlobalDictionary\ProgID", "Scripting.Dictionary","REG_SZ"
Set WshShell = Nothing
'*********************************************************************************************************************
'Part 2.
'*****************************************************************************************
GlobalDictionary.Add "ParamName", "ParamValue"
Msgbox GlobalDictionary.Item("ParamName")
GlobalDictionary.Item("ParamName")="***********"
Msgbox GlobalDictionary.Item("ParamName")
Msgbox GlobalDictionary.Exists("ParamName")
GlobalDictionary.Remove("ParamName")
Msgbox GlobalDictionary.Exists("ParamName")
'*********************************************************************************************
~~~~~~~~~~~
8.关掉多余的IE窗口
SystemUtil.CloseProcessByWndTitle "51testing", True
~~~~~~~~~~~~~~~~~~
9.Execute 的用法,这个用法在一些特殊时候很有用的.
x="4"
Execute "Dim A_" & x
Execute "A_" & x &"=99"
Msgbox Eval("A_" & x)
~~~~~~~~~~~~~~~~~~~
10.GetLastError的介绍,看字面就是取运行最后一个错误
x = GetLastError
msgbox(DescribeResult(x))
这样可以在程序里面判断程序运行时候是否出错了.
~~~~~~~~~~~~~~~~~
11.把weblist抓图下来
Setting.WebPackage("ReplayType") = 2 'Default is 1
Browser(".").Page(".").WebList(".").Click
Desktop.CaptureBitmap "C:\Test.bmp",True
Setting.WebPackage("ReplayType") = 1
~~~~~~~~~~~~~~~~~~~~~~~~~~
12.Reporter.ReportEvent的新用法
transNumber = 12345
Reporter.ReportEvent micPass, "TransactionNumber", "<DIV style='font-size: 7pt; color: white'>&</DIV>"&"<B> <FONT COLOR=#000000>"&transNumber&"</FONT></B>"
Reporter.ReportEvent micPass, "TransactionNumber", "<DIV style='font-size: 7pt; color: white'>&</DIV>"&"<B> <FONT COLOR=red>"&transNumber&"</FONT></B>"
~~~~~~~~~~~~~~~~~~~~~~~~~~
13.For循环中step的用法
For K = 1 To 10 step 2
          msgbox k
Next
~~~~~~~~~~~~~~~~~~~~~~~
14.Option Explicit,大家都知道VB Script里面是可以不申明变量直接使用,但是有时候我们为了脚本的规范,尽量申明使用的变量,这样你就用一下Option Explicit吧.
Option Explicit   ' Force explicit variable declaration.
Dim MyVar   ' Declare variable.
MyInt = 10   ' Undeclared variable generates error.
MyVar = 10   ' Declared variable does not generate error.

~~~~~~~~~~~~~~~~~~~~~~~
14.从TXT文件里面读取特定行的数据.
Dim fso, myfile,msg
Set fso=CreateObject("scripting.FileSystemObject")   
Set myfile = fso.openTextFile("C:\login.txt",1,false)
'这里设置一个循环看需要读取第几行
for i=1 to 10
myfile.SkipLine
next
msg=myfile.ReadLine
myfile.close

~~~~~~~~~~~~~~~~~~~~~~~

[ 本帖最后由 风过无息 于 2007-7-29 14:22 编辑 ]

eramyang 发表于 2007-5-9 16:22:21

GetParameter("test")中的test是那里来的?

风过无息 发表于 2007-5-9 16:36:11

是我参数的名字

[ 本帖最后由 风过无息 于 2007-5-9 16:42 编辑 ]

higkoo 发表于 2007-5-9 21:36:09

有点开发的感觉

有点在做开发的感觉,有没实际一点的例子?sdlkfj3

mldyt0229 发表于 2007-5-10 09:39:18

回复

在测试中我们使用QTP调试脚本的时候一般就是DEBUG或者MSGBOX察看一些信息,其实有时候也可以使用print来实现批量的察看信息但是不影响程序运行.
=======================================================
在帮助中没有找到这个对象或者是函数,而且具体怎么用有没有例子呢?

alex_82712 发表于 2007-5-10 09:45:36

学习了。
Thanks for LZ

风过无息 发表于 2007-5-11 14:48:20

你随便定义一些需要显示的数据就好了.
i=100
msg="hello"
print i
print msg

在9.0的帮助里面有关于print的介绍.

htot05 发表于 2007-5-11 15:02:15

不错,msgbox的特点就在与暂停脚本运行和输出结果只能当时看,再想看就得重新运行,如果用Print的话,在一些条件下会比msgbox方便一些,好办法~~!!

dawee 发表于 2007-5-12 13:12:17

原帖由 风过无息 于 2007-5-11 14:48 发表 http://bbs.51testing.com/images/common/back.gif
你随便定义一些需要显示的数据就好了.
i=100
msg="hello"
print i
print msg

在9.0的帮助里面有关于print的介绍.


1.print方法只适用于 9.0以上版本还是?是属于QTP里面的方法还是VBS的方法?
2.print 以后的信息到哪里去了呢?是有个默认的文件保存还是?
   如果想把print方法后获取的信息 输入到特定的文件,可否实现?如何实现?thanks

风过无息 发表于 2007-5-13 11:21:05

楼上的你可以自己把脚本运行一下就知道了

walker1020 发表于 2007-5-13 11:46:21

楼主经过一段时间的学习后,把自己的收获总结了出来,还无私地奉献了出来,值得学习!谢谢 风过无息!

风过无息 发表于 2007-5-14 18:27:46

谢谢斑竹的鼓励.

rivermen 发表于 2007-5-15 10:18:18

8.2里面没有print,那还有类似的方法吗?

风过无息 发表于 2007-5-15 11:01:11

你试过了吗?

chenjie021 发表于 2007-5-15 14:19:40

谢谢,楼主的总结

denisye 发表于 2007-5-15 22:08:20

谢谢楼主的总结,以前只知道用msgbox,今天学会了print这个好东东sdlkfj3

Sophie.zhang.cs 发表于 2007-5-16 13:55:40

弱弱的问一句,应该怎么运行这些语句阿?是在qtp直接运行吗?那不是要有一个url的吗 ?

风过无息 发表于 2007-5-17 14:47:18

新增一种设置全局变量的方法GlobalDictionary

rivermen 发表于 2007-5-17 16:32:08

我的8.2版本找不到 print

hxf 发表于 2007-5-18 16:30:16

8。2不支持print这个方法
页: [1] 2 3 4 5
查看完整版本: QTP学习分享(更新20070728)