• Reusable action with query database


    Reusable action with query database

     

          有两个Action,要实现如下图所示的逻辑,即在Action1中调用queryDB,以实现在Action1中可以只要通过参数就可以进行业务操作,而公用的方法则写入queryDB中。类似的queryDB既可以在本脚本中来调用,也可以在不同的脚本中进行调用。要实现这样的功能,可以利用Action的Reusable action功能。     为了实验,我采用了Oracle数据库及表c_cons。通过输入参数用户编码:cons_no,来实现调用queryDB来查询出用户标识:cons_id。

         1、建立两个Action,分别命名为Action1、queryDB,其中queryDB的Reusable action框勾选上,表示queryDB这个Action可以被重用。

         2、在queryDB这个Action中定义输入参数及输出参数。如图所示:

          3、切换到Action1中,进行对queryDB的调用。可以右键,在弹出框中选择”Insert Call to Existing….”,出现Select Action 对话框,如下图所示。在Action中选择要插入的Action即queryDB,Location选项中选择”After the current step” 选项。

          点击【OK】按钮,即可插入。同时在专家试图中显示脚本为:

    RunAction "queryDB", oneIteration

    为了实现输入参数来查询结果,需定义一个保留返回值的变量,returnconsid,并输入参数cons_no为3095646333。脚本如下所示:

    Dim returnconsid

    RunAction "queryDB", oneIteration,"3095646333",returnconsid

    msgbox returnconsid

    4、插入调用后,我们就可以在queryDB中写相关的业务逻辑操作了。具体的实现代码如下所示:

    Dim res,cmd,sql

    Set res=createobject("adodb.recordset")

    Set cmd=createobject("adodb.command")

    Rem 连接数据库

    Dim Connstring

    Connstring="Provider=OraOLEDB.Oracle.1;Password = sgpm31 ;Persist Security Info=True; User ID  = sgpm ; Data Source = CIS31 ; Server = 172.19.2.31"

    Cmd.activeconnection= Connstring

    rem 查询语句

    sql="select cons_id from c_cons where cons_no='"&parameter("cons_no")&"'"

    Cmd.CommandText=sql

    Set res=Cmd.Execute()

    If res.EOF And res.BOF Then

           res.Close

           Reporter.ReportEvent micFail,"test","查询失败"

           parameter("cons_id")="unknown"

           else

           rem CSTR转换成字符串

           If Cstr(res(0))<>"" Then

                           Dim returnconsid

                           returnconsid=Cstr(res(0))

                           Reporter.ReportEvent micPass,"test","查询成功,"&parameter("cons_no")&"的标识是"&returnconsid

                           parameter("cons_id")=Cstr(res(0))

           end if

    End If

    Set res=nothing

    Set Cmd.activeconnection=nothing

    Set Cmd=nothing

    这样整个脚本就实现了我们预期的要求,运行脚本能够得到我们需要的结果。

          注:类似queryDB这样的Action可以作为一个公用的Action,当然queryDB中的脚本完全可以作为一个公共函数来调用,我们这里这样做只是为了介绍QTP中Action的Reusable action功能。若需要在不同的脚本中调用这个queryDB,可以在Select Action 对话框中选择queryDB所在脚本的位置即可。如下图所示:

    专注于自动化、性能研究,博客为原创,转载请注明文章来源于:http://www.cnblogs.com/Automation_software/ 只求在IT界有一个清闲的世界让我静心的去专研,不求功名利禄,只为心中的那份成就感及自我成长、自我实现的快感。
  • 相关阅读:
    linux系统安装mysql数据库
    pyinstaller打包问题
    jmeter-Parameters和Body Data两种方式传参的区别
    jmeter-保存响应到文件
    Jenkins获取运行job的用户信息
    pytest插件(多重校验、用例依赖、执行顺序、失败重跑、重复执行、标记)
    谷歌开发者工具(F12)
    Linux常用命令
    一般什么原因会导致偶现问题?
    Fiddler模拟接口返回进行测试(二)
  • 原文地址:https://www.cnblogs.com/Automation_software/p/1902227.html
Copyright © 2020-2023  润新知