Testing 如何从命令行编译和运行QTP脚本

Testing 如何从命令行编译和运行QTP脚本,testing,command-line,compilation,qtp,Testing,Command Line,Compilation,Qtp,我想使用一个包含QTP脚本源代码的文本文件,并使用命令行编译它(创建在QTP中手动“保存”脚本时创建的usr、cfg、usp等文件)。有办法做到这两个吗 QTP/UFT中的所有这些额外文件都是为您编写脚本之外的“更多”工作而准备的。它存储测试描述、关联的存储库、参数、恢复场景等。如果您在文本文件中编写测试逻辑,很有可能您也没有使用任何额外的东西 进行任何空白QTP/UFT测试,以创建有效测试的“模板”。然后,您所要做的就是用文本文件的内容替换“Action1/script.mts”文件 如果您想

我想使用一个包含QTP脚本源代码的文本文件,并使用命令行编译它(创建在QTP中手动“保存”脚本时创建的usr、cfg、usp等文件)。有办法做到这两个吗

QTP/UFT中的所有这些额外文件都是为您编写脚本之外的“更多”工作而准备的。它存储测试描述、关联的存储库、参数、恢复场景等。如果您在文本文件中编写测试逻辑,很有可能您也没有使用任何额外的东西

进行任何空白QTP/UFT测试,以创建有效测试的“模板”。然后,您所要做的就是用文本文件的内容替换“Action1/script.mts”文件


如果您想从命令行执行所有这些操作,您需要编写一个简单的基于控制台的应用程序来完成繁重的工作。

为了解决这个问题,我要确保运行结果永远不会保存在测试目录中,并且对测试的整个目录或整个“测试”应用SVN子目录根目录

这可能会导致相当多的子目录结构,但它有一个含义(对于QTP),如果没有运行结果,它不是数百个文件或兆字节,因此SVN确实可以很好地处理它们

或者,您可以使用QC将测试保存在QC repo中,并在其中启用版本控制。然后,QC将处理测试的所有文件的“捆绑”,并保证只有一个用户可以修改给定的测试

关键是,如果您只是将脚本放入SVN中,并且在需要时以编程方式重新创建其他文件,则会丢失以下信息(不限于):

  • 数据表名称、选项卡结构、内容本地存储库内容
  • 关联的存储库文件
  • 关联的库文件运行设置
  • ActiveScreen显示检查点的预期值
  • 动作属性
  • 动作参数(正式和实际)
  • 操作调用层次结构(测试流)
  • 子动作脚本内容

这可能是不可接受的,除了最简单最琐碎的测试因此,我建议您放弃只保存脚本内容的想法。

我想这样做,因为我的所有脚本都在SVN存储库中提交,而且脚本的完整文件很重,所以我只想提交包含实际代码的文本文件,我需要一种编译此文本文件并通过cmd运行的方法,因此,任何想要使用代码的人都可以添加脚本的名称及其路径,并且能够编译和运行脚本(或者只是编译),然后启动QTP并能够运行此代码。如果有办法,我真的很感谢你的帮助:)如果你在QTP的在线帮助索引中查找“Action Object”,你会发现表示QTP动作的OTA/AOM对象。也就是说,您可以使用自动化界面创建新的测试,并为其分配所需的脚本代码。然而,这需要启动QTP实例,因为OTA只是QTP的语言接口。如果您想在不启动QTP的情况下使用所有伴随文件创建测试,您必须研究内部数据文件格式,并且必须创建正确创建它们的代码。(使用模板可能会起作用,但可能会遗漏一些可变的细节。)而且,为了使测试正常运行,仅保存脚本代码是不够的。作为测试的一部分,有无数的配置细节和其他状态数据,如果您只保存脚本代码并在需要时从头开始重新创建测试,您将丢失这些数据。但是要运行该文件,我需要在QTP中创建一个新脚本,粘贴代码,然后运行它,可以通过命令行完成吗?由于测试团队需要使用数百个my脚本,并且脚本中的所有文件都无法放入存储库,因为它的大小太大。你能帮我写这个基于控制台的程序吗?或者任何我可以用来编写程序的参考资料?所以我希望如果有test.vbs文件,有代码,我希望能够在cmd上运行一些命令,创建所有这些额外的文件,而不必启动QTP。另外,如果有一些函数与脚本关联,那么也必须通过将其添加为资源来专门添加dznt。这可能吗?谢谢你的详细介绍TheBlastOne:)我编写脚本的方式不需要使用任何对象存储库、函数库关联或任何其他类型的外部文件信息。正在测试的应用程序具有频繁更改的对象,因此我们与开发人员合作,找到了一种无需将对象存储在存储库中即可访问所有对象的方法。我们已将标识属性与应用程序代码中的每个GUI对象相关联,因此不再需要使用对象存储库。就函数库和其他外部文件关联而言,我使用了ExecuteFile方法来访问外部文件,并且通过使用环境变量“TestDir”和“TestName”使这些文件的路径成为相对的。总之,我可以使用我的代码并将其粘贴到新创建的QTP脚本中,它将成功运行。因此,剩下的唯一问题是,无法找到仅使用脚本/代码文件运行脚本的方法。