从Actions Datatable中检索值 - QTP

时间:2013-04-02 10:14:44

标签: qtp

在QTP中,可以说数据表操作是本地的,其中的值只能访问特定操作中的代码(例如Action1数据表中的值只能由Action1脚本访问),这就是为什么我们必须使用全局表

但是我遇到了以下函数,该函数将从不同的动作表中获取数据,例如Action1数据表中的数据和动作2中的代码。

如果这是可行的话,任何人都可以对我进行校验吗?如果是的话,为什么会推断Action数据表中的值是本地的,只有全局数据表中的值可以从任何地方访问?

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

3 个答案:

答案 0 :(得分:1)

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

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

但是,HP不会阻止您访问所需的任何工作表:仅仅存在 ImportSheet 功能强调了如果2个表不够,您可以使用外部表。使用其他操作表与使用导入的Excel文件中的工作表没有什么不同。

enter image description here

您有一个观点,将本地数据表的访问权限仅限于拥有操作是有意义的,就像局部变量仅限于定义它们的函数一样。但请记住,Action的DataSheet是一个完全独立的对象。它唯一不可改变的关系是它的父excel文件。这可能是惠普没有提出这样限制的原因。

答案 1 :(得分:0)

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

例如......

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

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

对于尝试使用测试脚本的其他人来说,这似乎更清晰,更少混淆。

答案 2 :(得分:0)

数据表( “COLUMNNAME”, “TABNAME”) 可以从任何软件访问。

实施例: Struser = datatable(“user”,“Global”) 等于 Struser = datatable(“user”,dtGlobalSheet)