51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6823|回复: 25
打印 上一主题 下一主题

[原创] QTP学习笔记连载

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-1-16 10:34:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
QTP学习笔记1——sub和funcition的区别
Function和sub的区别是:function能返回值,而sub是不能返回值的
举例:

function的例子



Dim a

a="dongfang"

Function myfullname(name)

   myfullname=name&" baoshu"

   msgbox "my fullname is "&myfullname

End Function

Call myfullname(a)

‘myfullname(a)  可以加括号,也可以不加括号



sub的例子





Dim a

a="dongfang"

sub myfullname(a)

      msgbox "my fullname is "&a&" baoshu"

end sub

myfullname a

'call myfullname(a)  ' 执行函数或sub



注意:

1.调用sub的函数可以用call 也可以不用call,但是使用call的时候需要把后边的括符加上

2.返回的时候使用的是函数名,不能使用return
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

26#
 楼主| 发表于 2009-7-14 15:46:17 | 只看该作者

十一、描述性编程获取右键菜单

十一、文件对象
[size=95%]§使用对象

Set file=createobject("scripting.filesystemobject")



新建1个文本文件

Set txtfile_1=file.opentextfile("e:\info.txt",2,true)

文本文件中添加文字


txtfile_1.writeline “
testtesttesttesttesttesttest



回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2009-6-5 15:38:33 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2009-5-26 14:40:07 | 只看该作者
收藏了啊 总结的挺不错的,看着这么熟悉的...原来是小孟啊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    23#
    发表于 2009-5-26 13:55:47 | 只看该作者
    原来撞车了啊,我说看资料这么眼熟呢,嘿嘿。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2009-5-26 13:03:32 | 只看该作者
    有时间研究下。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-2-28 09:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    21#
    发表于 2009-5-25 14:13:45 | 只看该作者
    不错,不错,好好学习一下!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    20#
    发表于 2009-5-25 13:59:10 | 只看该作者
    不错,不错,继续持续更新……
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2009-5-25 13:55:11 | 只看该作者

    QTP学习笔记10—应用手动连接数据库和动态数组,读取数据库中某列的值,并excel导出

    脚本如下:

    '手动连接oracle数据库
    Set Conn = CreateObject("ADODB.Connection" )
    str="DRIVER=Oracle in OraHome92;SERVER=172.29.131.30;DBQ=CMS_172.29.131.30;user id=cmstest; password=cms"  '连接数据库服务器
    Conn.open str
    Set Rst = CreateObject ("ADODB.Recordset" )
    sql = "select * from mc_memb " '查询数据库表格
    Rst.open sql,conn


    Rst.MoveFirst   '指向第一行
    If Rst.EOF and Rst.BOF Then  'Rst.EOF和Rst.BOF指:
    Rst.Close
    reporter.ReportEvent micFail,"test","查询失败"
    else

    Dim memb_real_name() '设置1个动态数组
    i=0
    column_1=datatable.GetSheet("Action1").addparameter("memb_real_name","")

    While not Rst.EOF  '循环读取数据库表中某一列的数据
    Redim Preserve memb_real_name(i+1)  '重新设置数组的纬度
    memb_real_name(i)=Rst("memb_real_name").value  '将数据库中表mc_memb中的字段"memb_real_name"的值赋给数组
        DataTable.SetCurrentRow(i+1)   'datatable中的行数从1开始
    DataTable.value("memb_real_name","Action1")=memb_real_name(i)  '将数据存放到datatable中
        print(i+1&":"& memb_real_name(i))   '打印出来数据库的数据--------用于调试
    i=i+1
    Rst.MoveNext  '指向下一行
    Wend
       DataTable.ExportSheet "C:\mengguixian002.xls","Action1"   '导出数据

    Rst.Close
    End If

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-5-6 11:23:12 | 只看该作者

    不错,谢谢

    不错,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2009-4-23 14:54:06 | 只看该作者

    QTP学习笔记9—while 循环和动态数组赋值

    1、声明1个动态数组

         Dim group()
    2使用while语句给动态数组赋值
        Dim group()
        i=0   ' i初始值为0
        While i<20
           Redim Preserve group(i+1) '重新定义数组纬度
           group(i)=i
           print group(i)
           i=i+1
        Wend

    Remdim Preservegroup(i+1)

    该函数设置数组的纬度,每1次循环设置1次,这样可以避免犯“下标越界”的错误





    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2009-4-8 16:52:17 | 只看该作者
    不错。继续
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2009-4-8 14:36:42 | 只看该作者
    谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-4-8 14:04:55 | 只看该作者
    原帖由 dreamsea123 于 2009-1-16 10:36 发表
    如何调用外部脚本函数
    步骤:
    1.新建外部脚本文件,命名为:cora.vbs
    内容是:
    Function test002(a)
    msgbox a
    End Function
    2. 在QTP中新建一个脚本,内容如下
    Dim x
    x=1
    call test002(x)
    3.把 ...


    使用VBS文件的时候,应该用ExecuteFile命令编译一下这个VBS文件,否则,Resource中的VBS不起作用。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2009-4-8 11:08:39 | 只看该作者

    QTP学习笔记8—手动连接oracle数据库

    QTP在很多条件下需要进行数据库测试,QTP使用微软ODBC连接数据库

    以oracle为例来说明

    Set Conn = CreateObject("ADODB.Connection" )     
    str="DRIVER=Oracle in OraHome92;SERVER=172.29.129.137;DBQ=CMS_172.29.129.137;user id=cms; password=cms"   '数据库的地址用户名密码

    Conn.open str
    Set Rst = CreateObject ("ADODB.Recordset" )
    sql = "select * from mid_employee_info "
    Rst.open sql,conn


    Rst.MoveFirst

    If Rst.EOF and Rst.BOF Then
    Rst.Close
    reporter.ReportEvent micFail,"test","查询失败"
    else
    Dim returnname
    returnname=cstr(Rst(0))

    msgbox returnname
    Rst.Close
    End If

    大家可以实验一下,只要更换红色部分的内容

    [ 本帖最后由 dreamsea123 于 2009-4-8 11:09 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-2-9 14:02:00 | 只看该作者
    good,我也才学这个~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-2-9 13:59:14 | 只看该作者
    楼主提供的信息很有重哦,不错不错!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-2-9 13:53:20 | 只看该作者
    值得我们去学习。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-2-9 11:19:27 | 只看该作者
    楼主很认真,关注一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-1-16 11:11:42 | 只看该作者
    顶一个
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 21:23 , Processed in 0.087612 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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