2

在 QTP 中,据说动作数据表是本地的,其中的值只能访问特定动作中的代码(如 Action1 数据表中的值只能由 Action1 脚本访问),这就是我们必须使用全局表的原因。

但是我遇到了下面的函数,它会从不同的动作表中获取数据,比如动作 1 数据表中的数据和动作 2 中的代码。

如果这是可行的,任何人都可以告诉我吗?如果可以,为什么普遍认为 Action 数据表中的值是本地的,并且只能从任何地方访问 Global 数据表中的值?

DataTable.Getsheet("Action1").GetParameter(A).Value
4

3 回答 3

1

默认情况下,本地和全局数据表与当前操作有关系。您可以在操作的第一行发出这些命令,您将获得值:

  • DataTable.GlobalSheet.Name
  • DataTable.LocalSheet.Name

但是,HP 不会阻止您访问所需的任何工作表:仅存在ImportSheet函数就强调了这样一个事实,即如果 2 个表不够用,您可以使用外部表。使用另一个动作的工作表与使用导入的 excel 文件中的工作表没有什么不同。

在此处输入图像描述

您说得有道理,将本地数据表的访问权限仅限于拥有的Action是有意义的,就像局部变量仅限于定义它们的函数一样。但请记住,Action 的 DataSheet 是一个完全独立的对象。它唯一不可撤销的关系是与其父 excel 文件。这可能就是惠普没有设置这种限制的原因。

于 2013-07-03T16:14:01.213 回答
0

看起来你可以做到这一点,但是,你为什么也想要呢?制作一个脚本并从中调用您的操作不是更容易吗?这样,您可以只引用您想要使用的操作数据表的哪一行。

例如..

RunAction "Action1 [Action1]","1-1"

RunAction "Action2 [Action2]","1-1"

对于尝试使用您的测试脚本的其他任何人来说,这似乎相当干净且不那么混乱。

于 2013-04-09T16:01:35.840 回答
0

Datatable("columnname","tabname") 可以从任何软件访问。

示例:Struser = datatable("user","Global") 等于 Struser = datatable("user",dtGlobalSheet)

于 2013-10-07T23:41:53.227 回答