QTP:是否可以创建一个将在每次测试运行之前/之后执行的函数

时间:2011-02-01 15:54:02

标签: qtp

是否可以创建在每次测试运行之前/之后执行的功能? 也许像this

例如,需要

  • 在每次测试之前恢复到干净的db
  • 每次测试后清除应用程序缓存或注册表设置

当然,可以创建2个函数,并在每个脚本的第一行和最后一行中显式调用它们。但是,在一个地方定义它们是合适的,这样就可以自动为每个测试调用它们。

2 个答案:

答案 0 :(得分:3)

声明。我不使用内置的QTP记录/回放框架或外部驱动程序。使用我自己的混合框架,我将测试逻辑与代码完全分开。因此我没有问到这个问题。

根据提供的其他信息,我建议了一些可能的解决方法。

  1. 如果您已经在测试中使用了 Init / Done 等功能,则可以在其中加入这些附加功能。要指定要调用的确切函数,可以使用,例如,Dictionary对象。作为此选项的子选项,请考虑使用回调。

  2. 如果在测试中使用对象类,则可以将这些附加功能附加到自动调用的构造函数/析构函数,这样您可以轻松地拥有多个退出点。在VBScript中,您可以仅通过委派使用继承,但这应该足够了。这是VBScript OOP上的example

  3. 您可以拥有一个特殊的“测试”脚本,由驱动程序在您的常规测试脚本之间调用。如果你的设置/恢复操作是通用的,那就是一个“快速而肮脏”的解决方案。如果您计划使用各种设置/恢复操作,则需要考虑在特殊脚本中调度正确调用的方式。

答案 1 :(得分:3)

在你的情况下,我会推荐Albert Gareev建议的第二个选项。 只需在另一个.qfl lib中创建一个类并创建一个访问器:

private autoInitiatorTerminator : Set autoInitiatorTerminator = new cls_autoInitiatorTerminator

class cls_autoInitiatorTerminator

   private sub class_initialize
       ' put here your initiation code
   end sub

   private sub class_terminate
       ' put here your termination code
   end sub
end class

Add-And-Forget(tm):将库作为资源添加到测试中,您可以忘掉它。