2

我有操作 1,我在其中查询数据库并获取我存储在变量中的字段(比如说 x)。在 Actions 2 中,我再次查询要在 where 子句中使用存储在 x 中的值的数据库。

动作 1 的片段:

SQL1 =  "   SELECT      Identitynumber " &_
        "   FROM        VLC_CRM.dbo.Person " &_
        "   WHERE       Identitynumber = '" &IdentityNumber_ui&"'"


Set oRecordSet = oConnection.Execute(SQL1)

Do While NOT oRecordSet.EOF
    IdentityNumber_db_tmp = CStr(oRecordSet.Fields("Identitynumber").Value)
    IdentityNumber_db = RTrim(IdentityNumber_db_tmp)
    oRecordSet.MoveNext
Loop

Action 2 SQL(我想在下面的 Where 子句中使用 Action 1 中的 IdentityNumber_db)

SQL1 =      "   SELECT  TOP 1   CAST(la.LogonDate AS DATE) AS LogonDate," &_
            "                   la.LogonDate AS LastLogonDateTime"&_
            "   FROM            dbo.LogonAudit la" &_
            "   INNER JOIN      dbo.Person p" &_
            "   ON              la.EntityID = p.PersonID" &_
            "   WHERE           p.IdentityNumber = '"&IdentityNumber_db&"'"  &_
            "   ORDER BY        LastLogonDateTime DESC"

有人可以建议我如何将此值从操作 1 传递到操作 2,以便我可以在我的 SQL 查询中使用它吗?

4

5 回答 5

4

版本:UFT 12.51

使用语法:RunAction strActionName, oneIteration, Param1, Param2

  1. Input Parameters是在您的第一个 Action<Param1><Param2>声明的,我称之为 Action1。
  2. 将值传递给 Action1 局部变量,例如:Param1 = "a1_var1 --> from Action 1"
  3. 执行RunAction命令传值,RunAction "Action2", oneIteration, Param1
  4. 在 Action2 中,我检索了参数值并存储在 Param2 Action 2 局部变量中,Param2 = Parameter("Param1")

请参阅屏幕截图。
在此处输入图像描述

于 2016-03-10T04:06:49.013 回答
2

最简单的方法是使用环境变量,但您也可以将输入参数设置为 Action2 并在 Action1 中调用它:

RunAction "Action2", oneIteration, parameter1,parameter2

其他可能的解决方案是TestArgs("argumentName") - 它与 Parameter 相同,但TestArgs的范围适用于整个 TestSet。参数仅用于给定的动作

于 2014-09-03T11:52:01.290 回答
1

在第一个动作中,您必须初始化环境值:

Environment.Value("yourName") = yourVariable

如果您想调用该值,只需编写

yourVarFromSecondAction=环境(“你的名字”)

正如@HgCoder 所说,您可以使用已实现的 Excel 表格,但是在与 ALM 相关的工作时遇到了一些问题,所以要小心。

于 2014-08-28T19:29:13.913 回答
1

您在操作中声明的变量的范围仅限于该操作,因此您必须找到具有全局范围的东西才能使其对两个操作都可用。

一些选项...

  1. 创建一个包含公共变量的函数库来保存你的数据
  2. 将值存储在环境变量中(有关环境中用户定义值的详细信息,请参阅 QTP 帮助)
  3. 将值存储在全局数据表中

这些选项中的每一个都使数据可用于脚本中的所有操作。

于 2014-08-21T12:37:02.730 回答
1

您可以将参数从一个动作传递给另一个可重用的动作,但请按照以下步骤操作;

  1. 从动作中,转到动作属性(视图-> 属性)
  2. 从动作属性转到参数
  3. 将输入参数添加到相同

现在您可以从调用动作传递参数的数量;

RunAction strActionName, oneIteration, intIteration*

您可以通过以下方式访问传递的参数;

var_to_hold_arg = 参数(“passed_arg”)

于 2015-04-30T08:48:46.087 回答