QTP User-Defined Function

上一篇 / 下一篇  2014-07-29 11:19:35 / 个人分类:QTP

1. 可以通过Function Definition Generator方便的定制自定义函数(Function)。
 
  2. Built-in Function优先级高于User-Defined Function.因此若存在同名的话,QTP会优先调用内置的Function。

  3. 通过RegisterUserFunc可以将自定义的函数注册为特定对象的方法,甚至可以覆盖原有对象的方法(Method)。通过UnRegisterUserFunc取消注册。
 
  注册方式:RegisterUserFunc TOClass, MethodName, FunctionName, True。

  反注册方式:UnRegisterUserFunc TOClass, MethodName。

  4. 定义在Action中的Function以及注册的Method只能在当前Action中使用,若需要供全局使用则定义到Function Library中。
 
  5. 如果Method在Action中注册并且被其他Action调用时,该Method定义也适用于调用Action(Calling Action)。但如果Function定义在被调用Action中(Called Action),则Calling Action会因为找不到Function定义而失败。这种情况的话,需要将Function 定义在Function Library中。
 
  6. QTP在测试执行前会清除所有的Method Register

  7. 默认情况下,User-Defined Function的运行结果不会出现在Test Result中,可以自己用Reporter.ReportEvent添加log。

  8. QTP在打开Test时加载了关联的Function Library,因此,若其他人或者你用其他编辑器修改了对应的Function Library,只有在QTP重新打开该Test后才生效。
 
  9. QTP搜索Function的顺序是先Test在Function Library.另外,同名的Function存在于多个Function Library时,后一个被使用。
 
  10. 对于同一个Method先后注册了两个不同的Function,后面的Method注册会覆盖前面的。当用UnRegisterUserFunc反注册时,会将该Method返回到原始状态,而不会回到前一个注册。
 
  11. 在某Action中使用ExecuteFile后,该Function只能在当前Action中使用。
 
  12. 对于存储在QC中的外部资源,如Function Library,QTP打开时为其创建了一个本地副本。因此若其他人修改了QC上的外部资源,或你使用其他编辑器进行修改时,该修改只有在QTP重新打开该Test才生效。但对于存储在本地的外部资源,不存在该问题。
 
  13. 在Test Settings中设置了Default Function Library列表后,新建Test时这些Library即被集成到新创建的Test中。以后对Default Function Library列表的修改对已有Test不产生任何影响。


TAG:

 

评分:0

我来说两句

Open Toolbar