51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 37034|回复: 82
打印 上一主题 下一主题

QTP学习分享(更新20070728)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-5-9 16:15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.在测试中我们使用QTP调试脚本的时候一般就是DEBUG或者MSGBOX察看一些信息,其实有时候也可以使用print来实现批量的察看信息但是不影响程序运行.
运行脚本:
  1. a="100"
  2. print a
复制代码

~~~~~~~~~~~~~~~~~~~~~~~~~
2.取datatable特定行的数据可以这样使用
运行脚本:
  1. DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(4)
复制代码

~~~~~~~~~~~~~~~~~~
3.Wait Seconds [, Milliseconds]可以精确到毫秒.
~~~~~~~~~~~~~~~~~~
4.在自定义的function里面数组作为返回值.
运行脚本:
  1. circuit = "399937"
  2. Function trimString(circuit)
  3. Dim holdArray(5)
  4. holdArray(0) = Left(circuit, 2)
  5. holdArray(1) = Right(circuit, 2)
  6. msgbox holdArray(0) 'showed 39
  7. trimString = holdArray' I get an out of range error here
  8. End Function
  9. dim myArray
  10. 'here I want to assign the return array to another array
  11. myArray = trimString(circuit)
  12. ' and then call one element from it
  13. msgbox myArray(1)
复制代码

~~~~~~~~~~~~~~~
5.计算一个操作的时间.
运行脚本:
  1. Browser("Browser").Page("Page").Image("getRates").Click
  2. var_StartTime = Timer
  3. Browser("Browser").Page("Page").Sync
  4. Browser("Browser").Page("Page").Check CheckPoint("Check1")
  5. var_EndTime = Timer
  6. intRespTime = round ((var_EndTime - var_StartTime), 2 )
  7. msgbox (intRespTime)
复制代码

~~~~~~~~~~~~~~~
6.取得指定sheet(datatable)的行数和列数(也可以理解为参数个数)
  1. paramcount = DataTable.GetSheet("Action1").GetParameterCount
  2. msgbox "There are " &paramcount&"columns in the data sheet."
  3. rowcount = DataTable.GetSheet("Action1").GetRowCount
  4. msgbox "There are " &rowcount&"rows in the data sheet."
复制代码

~~~~~~~~~~
7.一种设置全局变量的方法GlobalDictionary
'Part 1.
'***********************************************************************************************************
  1. Dim WshShell
  2. Set WshShell =CreateObject("WScript.Shell")
  3. WshShell.RegWrite "HKCU\Software\Mercury Interactive\QuickTest Professional\MicTest\ReservedObjects\GlobalDictionary\ProgID", "Scripting.Dictionary","REG_SZ"
  4. Set WshShell = Nothing
复制代码

'*********************************************************************************************************************
'Part 2.
'*****************************************************************************************
  1. GlobalDictionary.Add "ParamName", "ParamValue"
  2. Msgbox GlobalDictionary.Item("ParamName")
  3. GlobalDictionary.Item("ParamName")="***********"
  4. Msgbox GlobalDictionary.Item("ParamName")
  5. Msgbox GlobalDictionary.Exists("ParamName")
  6. GlobalDictionary.Remove("ParamName")
  7. Msgbox GlobalDictionary.Exists("ParamName")
复制代码

'*********************************************************************************************
~~~~~~~~~~~
8.关掉多余的IE窗口
  1. SystemUtil.CloseProcessByWndTitle "51testing", True
复制代码

~~~~~~~~~~~~~~~~~~
9.Execute 的用法,这个用法在一些特殊时候很有用的.
  1. x="4"
  2. Execute "Dim A_" & x
  3. Execute "A_" & x &"=99"
  4. Msgbox Eval("A_" & x)  
  5. ~~~~~~~~~~~~~~~~~~~
复制代码

10.GetLastError的介绍,看字面就是取运行最后一个错误
  1. x = GetLastError
  2. msgbox(DescribeResult(x))
复制代码

这样可以在程序里面判断程序运行时候是否出错了.
~~~~~~~~~~~~~~~~~
11.把weblist抓图下来

  1. Setting.WebPackage("ReplayType") = 2 'Default is 1
  2. Browser(".").Page(".").WebList(".").Click
  3. Desktop.CaptureBitmap "C:\Test.bmp",True
  4. Setting.WebPackage("ReplayType") = 1
复制代码

~~~~~~~~~~~~~~~~~~~~~~~~~~
12.Reporter.ReportEvent的新用法
transNumber = 12345
  1. Reporter.ReportEvent micPass, "TransactionNumber", "<DIV style='font-size: 7pt; color: white'>&</DIV>"&"<B> <FONT COLOR=#000000>"&transNumber&"</FONT></B>"
  2. Reporter.ReportEvent micPass, "TransactionNumber", "<DIV style='font-size: 7pt; color: white'>&</DIV>"&"<B> <FONT COLOR=red>"&transNumber&"</FONT></B>"
复制代码

~~~~~~~~~~~~~~~~~~~~~~~~~~
13.For循环中step的用法
  1. For K = 1 To 10 step 2
  2.           msgbox k
  3. Next
复制代码

~~~~~~~~~~~~~~~~~~~~~~~
14.Option Explicit,大家都知道VB Script里面是可以不申明变量直接使用,但是有时候我们为了脚本的规范,尽量申明使用的变量,这样你就用一下Option Explicit吧.
  1. Option Explicit   ' Force explicit variable declaration.
  2. Dim MyVar   ' Declare variable.
  3. MyInt = 10   ' Undeclared variable generates error.
  4. MyVar = 10   ' Declared variable does not generate error.
复制代码


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


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

[ 本帖最后由 风过无息 于 2007-7-29 14:22 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-5-9 16:22:21 | 只看该作者
GetParameter("test")中的test是那里来的?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-5-9 16:36:11 | 只看该作者
是我参数的名字

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-5-9 21:36:09 | 只看该作者

    有点开发的感觉

    有点在做开发的感觉,有没实际一点的例子?sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-5-10 09:39:18 | 只看该作者

    回复

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

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-5-10 09:45:36 | 只看该作者
    学习了。
    Thanks for LZ
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-5-11 14:48:20 | 只看该作者
    你随便定义一些需要显示的数据就好了.
    i=100
    msg="hello"
    print i
    print msg

    在9.0的帮助里面有关于print的介绍.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-5-11 15:02:15 | 只看该作者
    不错,msgbox的特点就在与暂停脚本运行和输出结果只能当时看,再想看就得重新运行,如果用Print的话,在一些条件下会比msgbox方便一些,好办法~~!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-5-12 13:12:17 | 只看该作者
    原帖由 风过无息 于 2007-5-11 14:48 发表
    你随便定义一些需要显示的数据就好了.
    i=100
    msg="hello"
    print i
    print msg

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



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

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-5-13 11:21:05 | 只看该作者
    楼上的你可以自己把脚本运行一下就知道了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2007-5-13 11:46:21 | 只看该作者
    楼主经过一段时间的学习后,把自己的收获总结了出来,还无私地奉献了出来,值得学习!谢谢 风过无息!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2007-5-14 18:27:46 | 只看该作者
    谢谢斑竹的鼓励.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2007-5-15 10:18:18 | 只看该作者
    8.2里面没有print,那还有类似的方法吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2007-5-15 11:01:11 | 只看该作者
    你试过了吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-5-15 14:19:40 | 只看该作者
    谢谢,楼主的总结
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-5-15 22:08:20 | 只看该作者
    谢谢楼主的总结,以前只知道用msgbox,今天学会了print这个好东东sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-5-16 13:55:40 | 只看该作者
    弱弱的问一句,应该怎么运行这些语句阿?是在qtp直接运行吗?那不是要有一个url的吗 ?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2007-5-17 14:47:18 | 只看该作者
    新增一种设置全局变量的方法GlobalDictionary
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    19#
    发表于 2007-5-17 16:32:08 | 只看该作者
    我的8.2版本找不到 print

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-5-18 16:30:16 | 只看该作者
    8。2不支持print这个方法
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-2 15:57 , Processed in 0.089387 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表