发布新日志

  • 小结datatable的使用

    2008-10-24 10:33:25

    1)获得datatable的行数

       rowcount = DataTable.GetSheet("Global ").GetrowCount

    2)获得datatable的列数

       paramcount = DataTable.GetSheet("Global ").GetParameterCount    

    3)取得datatable的某一行

       datatable.setcurrentrow(RowNumber)

    4 取得datatable的下一行

       DataTable.GetSheet("Global ").SetNextRow

    5)获得当前行数

       datatable.getcurrentrow

    6)获得datatable的各列列名

       DataTable.GetSheet("Global").GetParameter(ColNumber).name

    7)获得datatable某列的值

       DataTable(ColNumber,Global)

  • QTP关于文件的操作

    2008-10-24 09:31:22

    转一篇文章

    创建文件
    dim fso, f
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    set f = fso.CreateTextFile("C:\test.txt", true) '第二个参数表示目标文件存在时是否覆盖
    f.Write("写入内容")
    f.WriteLine("写入内容并换行")
    f.WriteBlankLines(3) '写入三个空白行(相当于在文本编辑器中按三次回车)
    f.Close()
    set f = nothing
    set fso = nothing

    打开并读文件
    dim fso, f
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    set f = fso.OpenTextFile("C:\test.txt", 1, false) '第二个参数 1 表示只读打开,第三个参数表示目标文件不存在时是否创建
    f.Skip(3) '将当前位置向后移三个字符
    f.SkipLine() '将当前位置移动到下一行的第一个字符,注意:无参数
    response.Write f.Read(3) '从当前位置向后读取三个字符,并将当前位置向后移三个字符
    response.Write f.ReadLine() '从当前位置向后读取直到遇到换行符(不读取换行符),并将当前位置移动到下一行的第一个字符,注意:无参数
    response.Write f.ReadAll() '从当前位置向后读取,直到文件结束,并将当前位置移动到文件的最后
    if f.atEndOfLine then
        response.Write("一行的结尾!")
    end if
    if f.atEndOfStream then
        response.Write("文件的结尾!")
    end if
    f.Close()
    set f = nothing
    set fso = nothing

    打开并写文件
    dim fso, f
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    set f = fso.OpenTextFile("C:\test.txt", 2, false) '第二个参数 2 表示重写,如果是 8 表示追加
    f.Write("写入内容")
    f.WriteLine("写入内容并换行")
    f.WriteBlankLines(3) '写入三个空白行(相当于在文本编辑器中按三次回车)
    f.Close()
    set f = nothing
    set fso = nothing

    判断文件是否存在
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    if fso.FileExists("C:\test.txt") then
        response.Write("目标文件存在")
    else
        response.Write("目标文件不存在")
    end if
    set fso = nothing

    移动文件
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    call fso.MoveFile("C:\test.txt", "D:\test111.txt") '两个参数的文件名部分可以不同
    set fso = nothing

    复制文件
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    call fso.CopyFile("C:\test.txt", "D:\test111.txt") '两个参数的文件名部分可以不同
    set fso = nothing

    删除文件
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    fso.DeleteFile("C:\test.txt")
    set fso = nothing

    创建文件夹
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    fso.CreateFolder("C:\test") '目标文件夹的父文件夹必须存在
    set fso = nothing

    判断文件夹是否存在
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    if fso.FolderExists("C:\Windows") then
        response.Write("目标文件夹存在")
    else
        response.Write("目标文件夹不存在")
    end if
    set fso = nothing

    删除文件夹
    dim fso
    set fso = server.CreateObject("scrīpting.FileSystemObject")
    fso.DeleteFolder("C:\test") '文件夹不必为空
    set fso = nothing

  • QTP:按住ctrl进行多选的问题

    2008-07-23 13:18:40

    昨天遇到一个问题,在我们测试的网站上有个功能:按住ctrl键可以选择页面里的多张图片

    起初录制了脚本,但是在回放过程中,QTP似乎没有进行按住ctrl的操作,这样,先前选择的4张图片变成了每张各自被选择了,没有达到多选的效果。通过网友的帮助,找到了解决的办法,和大家分享一下,也希望能启发有类似疑惑的朋友。顺便感谢那两位给我帮助的朋友!

    QTP中包含了Mercury.DeviceReplay对象,可以模拟鼠标单击和移动,还有键盘输入等操作。在调用DeviceReplay对象的方法之前,需要首先创建DeviceReplay对象:Set deviceReplay = CreateObject( "Mercury.DeviceReplay" )。DeviceReplay对象包含很多有用的方法,大家可以参考相关文档,我这里用到了KeyDown方法和KeyUp方法。KeyDown方法模拟一个按键的按下并保持(相当于Win32KEY_DOWN事件)。KeyUp方法模拟通过键盘释放某个按下的按键。贴上一段脚本供大家参考:

    Browser("LOGIN").Page("LOGIN").Frame("main").WebEdit("loginId").Set "11"
    Browser("LOGIN").Page("LOGIN").Frame("main").WebEdit("password").SetSecure "48868cec12e855ab2f943f8814b33f40"
    Browser("LOGIN").Page("LOGIN").Frame("main").Image("LOGIN").Click 35,6
    Browser("LOGIN").Page("IMAGE WORKS").Sync
    Window("安全").Click 115,285
    Const VK_CONTROL = 29
    Set deviceReplay = CreateObject( "Mercury.DeviceReplay" )
    deviceReplay.KeyDown VK_CONTROL
    wait(5)
    Browser("LOGIN").Page("IMAGE WORKS").Frame("appletfile").WinObject("SunAwtCanvas").Click 94,105
    wait(2)
    Browser("LOGIN").Page("IMAGE WORKS").Frame("appletfile").WinObject("SunAwtCanvas").Click 210,83
    wait(2)
    Browser("LOGIN").Page("IMAGE WORKS").Frame("appletfile").WinObject("SunAwtCanvas").Click 359,101
    wait(2)
    Browser("LOGIN").Page("IMAGE WORKS").Frame("appletfile").WinObject("SunAwtCanvas").Click 517,102
    wait(2)
    deviceReplay.KeyUp VK_CONTROL
    Browser("LOGIN").Page("IMAGE WORKS").Frame("header").Image("LOGOUT").Click
    Browser("LOGIN").Page("LOGIN_2").Sync

    Browser("LOGIN").Close

    以上脚本是登陆一个web系统,通过ctrl选择4张图片,然后注销用户的过程。

  • QTP创建数据库检查点遇到的问题

    2008-06-30 15:11:26

    前两天尝试QTP数据库检查点,现在有些问题,请有经验的同行给指点一下,谢谢

    首先我录制了一段脚本,主要是登陆系统,然后添加用户(包括新的用户名,密码,用户类型等)。录制以后,添加了一个数据库检查点,检查新添加的数据。建立数据库检查点的过程如下(以172.25.65.118为例):

    1)录制脚本:登陆系统,录入一条数据(loginid是主键),loginid='1234567',password='pass123',passwordagain='pass123'

    2)插入数据库检查点:[Insert] -[CheckPoint] -[Database CheckPoint]

    3选择“Specify SQL statement manually-Next

    Connecting string

    Provider=SQLOLEDB;Data Source=172.25.65.118;

    Initial Catalog=NTTDB_TEST;User ID=sa;Password=sa;

    4SQL Statement

    Select * from nttuser where loginid='1234567'

    之后,我把loginid,password,passwordagain参数话,模拟录入不同数据的过程。loginid参数话的参数名称是txtName

    现在的问题是,参数话录入数据后,我应该如何建立数据库检查点?很显然,现在“Select * from nttuser where loginid='1234567'”已经不适用了。我尝试把这个SQL语句改成带变量的形式:Select * from nttuser where loginid=' "&txtName" '。总是提示:the checkpoint could not be created because the query returned an empty result set.请高手指点一下,象这种情况应该怎么创建数据库检查点呢?

  • QTP参数化

    2008-06-17 16:10:54

    刚刚开始自学QTP,好多功能我不知道应该什么时候使用。我把自己弄懂的一点点发上来,希望得到大家的指点,互相进步。

    今天主要学习了参数化

    实现的功能是:通过参数化,模拟不同用户登陆公司的ISSUE TRACKER 系统

    步骤:

    1)录制一个用户登陆ISSUE TRACKER 系统的脚本

    2)把用户名和密码参数化

    3)执行脚本,察看执行结果

    脚本如下

    Browser("项目跟踪系统-用户登陆").Page("项目跟踪系统-用户登陆").WebEdit("txtUsername").Set DataTable("txtUsername", dtGlobalSheet)
    Browser("项目跟踪系统-用户登陆").Page("项目跟踪系统-用户登陆").WebEdit("txtPassword").SetSecure DataTable("txtPassword", dtGlobalSheet)
    Browser("项目跟踪系统-用户登陆").Page("项目跟踪系统-用户登陆").WebButton("登录").Click
    Browser("项目跟踪系统-用户登陆").Page("项目总括").Sync
    Browser("项目跟踪系统-用户登陆").Page("项目总括").Check CheckPoint("200[0-9]-[0-1][0-9]-17")
    Browser("项目跟踪系统-用户登陆").Close

    使用万用字符表示法,添加了一个对日期格式的检查点

     

  • 纪念开通日志

    2008-06-04 09:00:53

    测试做了一年多了,几乎还是在操作的程度,今天,我觉得应该开始思考了。开个日志,也算是对自己工作的监督吧。在这块园地里,希望能和大家一起,不断进步!

我的栏目

数据统计

  • 访问量: 6516
  • 日志数: 6
  • 文件数: 3
  • 建立时间: 2008-06-04
  • 更新时间: 2008-10-24

RSS订阅

Open Toolbar