Difference between Action and Function

上一篇 / 下一篇  2009-04-01 19:26:56 / 个人分类:QTP

QTP里面有Actionfunction,这2者有什么不同呢?在什么样的情况下选择用reusable action, 什么情况下用libray里面的function来对组织公用的方法及组件呢?

首先:单纯从Action和Function的不同来说:

1。 Action存有Local Objects,可以和shared object repository,shared library, Data Table, User-defined environment variable以及Recovery相关联。但function一般情况下只保存在libray file里面,本身不和object, Data Table, Environment variables 相关联。尤其是不能和object repository相关联,这就导致在用Function来管理一些对具体的objects有操作的一些组件的时候,需要同时为这个shared library file准备一个shared object repository。否则就有可能导致在function里面,对object的操作失败,找不到相应的object.

2。 Action和Function都有input parameters和output parameters。但这之间仍然是有区别的。Function的input parameters和output parameters,因为VB script的关系,导致其只有一种类型,没有具体的parameter type。但Action不同,Action可以定义具体类型(string, number, boolean...)的input和output parameter。

3。 保存一个Action,一般会同时保存很多文件,而function只需要一个.qfl文件即可。

4。 在调用Action或者function的时候,function可以直接调用,action需要"Insert Call to Existing...",然后需要选定action的路径。虽然在expert view里面同样是一个语句,但如果仅仅手动输入这样一个"RunAction ....",是行不通的,必须要通过"Insert Call to Existing..."的方式加进去。

所以总结上面的不同点,对于“什么情况下用libray里面的function来对组织公用的方法及组件呢?”这样的问题总结如下:

1。 在Function里面尽量不要有关于object的具体操作。如果一定要有这样的function,那就必须管理相应的shared object repository。建议即使要用function来管理有关object的操作,可以用descriptive programming。

2。 有关business的逻辑,最好用Reusable Action来保存。当然如果考虑到有太多这样可重用的Reuseable Action,而且不便保存太多Action的话,也可以用Function。

 


TAG: action function Function

 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6030
  • 日志数: 8
  • 建立时间: 2007-09-27
  • 更新时间: 2009-04-20

RSS订阅

Open Toolbar