Functions与Actions

洪高刚
2023-12-01

        在使用QTP做自动化测试的过程中,我们有时候会用到QTP中的Action,有时候也会用到VBScript的函数,在这里称之为Function。那么这两者之间有什么区别和联系呢,在这里我个人做了一下总结,限于水平有限,总结得可能不是很全面,欢迎拍砖~


  • Actions和Functions的区别

1. Action属于QTP的范畴,而Function则属于VBScript的范畴。

2. Action有相关联的本地对象库(Local Object Repository)、本地数据池(Local DataTable)和共享对象库(Shared Object Repository),而Function没有这些。

3. Function可以定义在一个Action内部,但一个Action无法定义在一个Function内部。

4. Function可以存储在一个QTP的Test文件的内部或者外部,Action是QTP Test文件的一个组成部分(一个Test文件由若干Action组成)。

5. Function在运行时的性能比Action更好。

6. Action可以有多个输出参数而Function最多只能有一个返回值,但是Function可以通过巧妙地使用ByRef,Collections和公有变量来达到返回多个值的效果。


  • Action的优缺点

1. Action可以提供多个输入和输出参数。

2. Action的参数不支持复杂的参数类型,比如数组、对象等等。

3. 一个没有任何对象和代码的空的Action可以占据大约150多KB的空间,过多的Action会大大增加脚本的大小。

4. 可重用的Action在被调用时是只读状态,无法被修改。如果可重用的Action出现问题,我们需要关闭当前的Test并打开那个可重用Action所在的Test,修改完那个Action的代码后再重新打开之前的Test来运行,如果可重用的Action还是有问题,那么需要再重复这个过程,由此可见,使用Action时的维护量是非常大的。

5. 使用Action时,在QTP的测试报告中会单独增加一个独立的分支,使测试结果看起来更简洁明了。


  • Function的优缺点

1. Function不会占据很大的磁盘空间。

2. 通过重定义,Function可以轻易被重写。

3. 修改编辑Function要比Action容易得多,因此维护量也能减少很多。

4. Function的参数类型更为全面

 类似资料: