发布新日志

  • QTP连接数据库进行增删改查脚本

    2009-12-04 18:20:53

    步骤:
    1、首先创建数据源
    2、在QTP的Exper View中开发脚本如下脚本

    增删改脚本为:

    Dim conn,strSql
       '定义变量
    set conn = CreateObject("ADODB.Connection")
      '创建连接
    conn.ConnectionString="DSN=test_access_odbc;DBQ=E:\test.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
      '设置连接字符串
    conn.open
     '开启连接
    'strSql="insert into email_value values(11,'123')"
     '设置插入语句
    'strSql="update email_value set email_value='tester' where ID=11"
    strSql="delete from email_value where ID=11"
    If conn.state=0 Then
      '如果连接状态为0,表示连接失败,写入reporter对象中,否则表示连接成功
       Reporter.ReportEvent micFail,"testing","数据库连接失败"
       conn.close
       Set conn = nothing
    else
      Reporter.ReportEvent micPass,"testing","数据库连接成功"
      conn.execute strSql   '执行更新语句
      conn.close
      Set conn = nothing
    End If


    查询脚本为:

    Dim conn,res,strSql
       '定义变量
    set conn = CreateObject("ADODB.Connection")
      '创建连接
    conn.ConnectionString="DSN=test_access_odbc;DBQ=E:\test.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
      '设置连接字符串
    conn.open
     '开启连接
    Set res = CreateObject("ADODB.RecordSet")
      '创建一个记录集对象
    strSql="select * from email_value"
     '设置查询雨具
    If conn.state=0 Then
      '如果连接状态为0,表示连接失败,写入reporter对象中,否则表示连接成功
       Reporter.ReportEvent micFail,"testing","数据库连接失败"
       res.close                              '关闭结果集和连接,并且置为空
       Set res = nothing
       conn.close
       Set conn = nothing
    else
      Reporter.ReportEvent micPass,"testing","数据库连接成功"
      res.open strSql,conn   '执行查询语句
      res.MoveFirst       '将记录集游标指到记录集的最开始
      Do
         Reporter.ReportEvent micPass,"file",cstr(res(0))+" : "+cstr(res(1)) '循环遍历查询结果,并且保持到reproter对象中,直到记录集到达末尾,循环结束
        res.MoveNext
      Loop until res.eof = true
      res.close
      Set res = nothing
      conn.close
      Set conn = nothing
    End If
  • QTP 连接数据库实例

    2009-11-13 17:42:17

    初始化连接串
    ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=my;Data Source=DOFA40328"
    '创建SqlConnection的实例,构造函数中的参数为ConnectionString
    Set SqlConnection = DotNetFactory.CreateInstance("System.Data.OleDb.OleDbConnection","System.Data",ConnectionString)
    '打开数据库连接
    SqlConnection.Open
    '创建SqlCommand的实例,构造函数中的参数有两个,一个是数据库的查询语句,一个是数据库连接对象SqlConnection
    Set SqlCommand = DotNetFactory.CreateInstance("System.Data.OleDb.OleDbCommand","System.Data","Select * from username",SqlConnection)
    '创建SqlDataAdapter的实例,构造函数中的参数为数据库命令对象SqlCommand
    Set SqlDataAdapter = DotNetFactory.CreateInstance("System.Data.OleDb.OleDbDataAdapter","System.Data",SqlCommand)
    '创建一个DataSet实例
    Set DataSet = DotNetFactory.CreateInstance("System.Data.DataSet","System.Data")
    '调用SqlDataAdapter的Fill方法,把查询返回的数据放到DataSet实例中
    SqlDataAdapter.fill(DataSet )
    '关闭数据库连接
    SqlConnection.Close
    '期待返回记录行数
    ExpectedRowCount = 2
    '获取数据记录行数
    ActualRowCount = DataSet.Tables.get_Item(0).Rows.Count
    '判断是否等于预期记录行数
    If not  ActualRowCount <> ExpectedRowCount Then
     Reporter.ReportEvent micFail,"错误","数据库记录行数不正确!期待返回记录行数 = "&ExpectedRowCount&"实际返回行数 = "&ActualRowCount
     else
     Reporter.ReportEvent micPass,"正确","数据库记录行数正确"
    End If
  • QTP中虚拟对象设置

    2009-04-23 11:40:25

      当我们在录制脚本中,有时会遇到某个对象回放时不能识别.那么就可以考虑是不是可以做个虚拟对象来代替它.您可以将这些对象定义为虚拟对象,并将它们映射到标准类,例如按钮或复选框。QuickTest 在运行会话过程中模拟虚拟对象上的用户操作。在测试结果中,虚拟对象显示时类似标准类对象。

       下面我们还是通过一个例子来具体操作一下.这次选用LoadRuner自带的b/s架构的web例子,来录制脚本.(注:运行这个例子,同时把web server先给开起来.).这次只录制一个点击sign up(注册)的步骤.
    录出脚本如下:

    Browser("Mercury Tours").Page("Mercury Tours").Frame("navbar").Image("signup").Click 45,12

    QTP把这个button对象识别成了Image(图片)对象,导致最后回放的时候,QTP不能完成Click操作,弹出报错信息.对于这个对象,我马上想到了做个虚拟的button对象来代替它.

    下面是整个虚拟对象的制作过程:

    1.选择“工具”>“虚拟对象”>“新建虚拟对象”。或者,也可以在虚拟对象管理器中,单击“新建”。将打开虚拟对象向导。单击“下一步”。

    2.选择要将您的虚拟对象映射到的标准类(这里有六种对象类供你选择,分别是object,button,table,list,check box,radio button).这里我们要映射一个button对象,所以选择button.单击"下一步"

    3.单击“标记对象”。选择你要做虚拟对象的区域,拖动鼠标.尽量能覆盖整个你想替代的对象.

    4.在“标识对象使用”框中,选择您希望 QTP 标识和映射虚拟对象的方式。

    如果您想要 QuickTest 标识所有出现的虚拟对象,请选择“Parent only”。

    如果想要 QuickTest 仅标识一次出现的虚拟对象,请选择“Entire parent hierarchy"。

    这里我们选择默认的“Parent only”。

    5.指定虚拟对象的名称和集合。从集合列表中选择,或通过在“集合名”框中输入新名称来新建集合

    点击完成,整个虚拟对象就做好了.

    虚拟对象做好后,保存在虚拟对象管理器中.我们可以通过虚拟对象管理器来删除或禁用虚拟对象定义.

    选择“工具”>“虚拟对象”>“虚拟对象管理器”。将打开虚拟对象管理器。

    注意:如果希望 QuickTest 在录制时识别虚拟对象,请确保清除“选项”对话框的“常规”选项卡中的“录制时禁止识别虚拟对象”复选框。

    接下来我们再来录制一遍对sign up的操作,录制代码如下:

    Browser("Mercury Tours").Page("Mercury Tours").Frame("navbar").VirtualButton("button").Click

    在录制过程中值得注意的是,一定要点击到我们做好虚拟对象的范围内,这样QTP才能识别到这个虚拟对象.这里我们的虚拟对象识别成功.再次回放,QTP顺利的执行了脚本.

    还有两点要注意的是:

    1.虚拟对象管理器中显示的虚拟对象集合存储在您的计算机中,而不是随包含虚拟对象步骤的测试或组件存储。这意味着如果您在测试或组件步骤中使用虚拟对象,则仅当在包含正确的虚拟对象定义的计算机中运行时,该对象在运行会话过程中才能被识别。要将您的虚拟对象集合定义复制到另一个计算机,请将您的 <QuickTest 安装文件夹>\dat\VoTemplate 文件夹的内容(或该文件夹中的单个.vot集合文件)复制到目标计算机上的相同文件夹中。

    2.仅当录制和运行测试或组件时,才能使用虚拟对象。您不能在虚拟对象上插入任何类型的检查点,也不能使用“对象探测器”来查看其属性。

    接下来你可以继续完成整个sign up过程,还有多个类似的对象需要做虚拟对象.你也可以试一下?

Open Toolbar