查看完整版本: 关于脚本的规范

wtucel 2007-6-21 00:07

关于脚本的规范

才接触QTP一段时间不久,对自己写的脚本也在不断的改进中有了一定的认识,但是现在还是没有想出一个比较完美的脚本规范来,希望有经验的高手来指教下

一、对于Action的分布
     
      1、整个测试脚本就一个action:
      
      优点:只有一个对象库,对象的更新非常方便,只需要更新一个对象库中的对象
      缺点:代码太混乱,一个action中的代码太多,不方便查找和修改
      
      2、整个测试脚本有多个action,如新增一个action,修改一个action,或每一个步骤一个action
      
      优点:代码清晰明朗,方便修改,在测试结果中也比较容易查看
      缺点:每一个action都有一个对象库,更新对象的时候需要更新每个action中的相应对象,太麻烦

二、对于参数化

     1、使用DataTable来进行参数化
      
     优点:能够在检查点或其他地方非常方便的取得dataTable中的值
     缺点:灵活性太差了,而且不直观(别人使用你的脚本时也许不知道要修改datatable中的参数)

     2、使用函数和变量来进行参数化(用随机函数或定义全局变量等)

     优点:可以放在脚本的最前面或单独的一个action中,方便用户使用脚本前进行配置参数
     缺点:无法在添加检查点中直接引入这个参数,只有通过DataTable来中转或手动用于编写检查的脚本

三、对于描述性编程

      也是无法在ActiveScreen中直接插入检查点,只能自己手动编写用来检查的函数。

   
     上面遇到的这些问题,对于脚本的规范,大家有没有好的建议或项目中的实际经验,说说吧~

yabest 2007-6-21 00:24

呵呵,等你对QTP熟悉到一定程度,抛弃Action、DataTable、检查点和ActiveScreen吧!
采用Function+Library+共享对象仓库,你会得到自由!

wtucel 2007-6-21 00:37

LS说得有一定道理,但是对于比较复杂的系统来说,放弃QTP本身方便的脚本生成方法,完全手工的去写脚本的话,一是时间上可能不允许,二是QTP跟开发工具相比,所使用的语言有一定的局限性啊。

yabest 2007-6-21 01:51

那你这些问题也不是什么问题!

一、对于Action的分布
     
      1、整个测试脚本就一个action:
      
      优点:只有一个对象库,对象的更新非常方便,只需要更新一个对象库中的对象
      缺点:代码太混乱,一个action中的代码太多,不方便查找和修改
      
      2、整个测试脚本有多个action,如新增一个action,修改一个action,或每一个步骤一个action
      
      优点:代码清晰明朗,方便修改,在测试结果中也比较容易查看
      缺点:每一个action都有一个对象库,更新对象的时候需要更新每个action中的相应对象,太麻烦

[color=Blue]
      可以使用共享方式(shared)的对象仓库,所有Action共用一个仓库。不要用每个Action方式(Per-Action)的对象仓库。
[/color]

二、对于参数化

     1、使用DataTable来进行参数化
      
     优点:能够在检查点或其他地方非常方便的取得dataTable中的值
     缺点:灵活性太差了,而且不直观(别人使用你的脚本时也许不知道要修改datatable中的参数)

     2、使用函数和变量来进行参数化(用随机函数或定义全局变量等)

     优点:可以放在脚本的最前面或单独的一个action中,方便用户使用脚本前进行配置参数
     缺点:无法在添加检查点中直接引入这个参数,只有通过DataTable来中转或手动用于编写检查的脚本

[color=Blue]
      可以使用 DataTable + Excel配置文件 的方式,你录脚本时只要面对DataTable,用户只要面对外部的Excel配置文件,
      只要你在开始运行时,写段脚本,将Excel配置文件内容相应的读入DataTable中即可
[/color]

三、对于描述性编程

      也是无法在ActiveScreen中直接插入检查点,只能自己手动编写用来检查的函数。

[color=Blue]
      没必要用描述性编程了
[/color]

walker1020 2007-6-27 09:43

这样有深度的讨论越多越好

zhuyuancan 2007-6-27 15:40

支持一下下sdlkfj3 !!!

atilar 2007-6-29 15:57

ding

xihong2004 2007-7-29 22:21

顶一下

xiaoyaoke 2007-7-30 19:45

感觉每次看yabest的帖子都能得到点什么,支持

househou 2007-7-31 10:08

Function+lib+共享对像库,good idea

Function+lib+共享对像库,感觉很好
请教yabest楼主几个问题:
1.这样的对象库建立是否方便并易于维护
2.如果需要检查的地方很多,事先怎么记得清楚要使用Function或者lib检查什么
3.这样的自动化测试框架的效果怎么样?能否考虑系统意外重启和被测试产品或者系统意外崩溃
4.这样的自动化测试占所有测试case的百分比是多少

yabest 2007-8-1 14:35

[quote]原帖由 [i]househou[/i] 于 2007-7-31 10:08 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=633788&ptid=80344][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
Function+lib+共享对像库,感觉很好
请教yabest楼主几个问题:
1.这样的对象库建立是否方便并易于维护
2.如果需要检查的地方很多,事先怎么记得清楚要使用Function或者lib检查什么
3.这样的自动化测试框架的 ... [/quote]


>1.这样的对象库建立是否方便并易于维护
  用共享对象库,清晰明了、统一定义、集中维护、方便共享

>2.如果需要检查的地方很多,事先怎么记得清楚要使用Function或者lib检查什么
  脚本要分层的,函数也是分层的,中间的业务函数层相对独立于Case需要,直观封装创建、修改、删除、查询等业务操作,
  上层的Case函数层才调用业务函数层,得到数据,并自己做数据检查。

>3.这样的自动化测试框架的效果怎么样?
  这样的框架是我们团队初期QTP开发遇到很多问题后的反思和总结的成果,使用以后效果很好,我们团队都一直在用呢。

>  能否考虑系统意外重启和被测试产品或者系统意外崩溃
   这些情况复杂了,无法一一检测。
   我们每个Case结束后都有检查和恢复操作,如果意外发生,为了保证测试进行,就不管是啥情况,直接重启被测客户端程序。

>4.这样的自动化测试占所有测试case的百分比是多少
   我们绝大多数QTP Case都是按照这种模式来开发的。

郁金香 2007-9-28 13:39

回复 11# 的帖子

请教lib是什么?我不太明白,还望指点。

walker1020 2007-11-8 15:44

lib是 library 的缩写,意思是 库文件。如果你做过开发,就很容易理解了

vickiren 2007-11-16 14:17

回复 11# 的帖子

水平不行,等待以后和你们讨论

ivanland 2008-9-1 14:15

共享对象库的确不错,易于管理,但是如果所有对象都存放于一个对象库中,一旦对象过多那么查找起来就太花费时间了。

wentao_xiang 2008-9-18 17:39

回复 1# 的帖子

学习中呀,让我倍感汗!

爱喝可乐的蚊子 2008-10-23 00:15

"可以使用 DataTable + Excel配置文件 的方式,你录脚本时只要面对DataTable,用户只要面对外部的Excel配置文件,只要你在开始运行时,写段脚本,将Excel配置文件内容相应的读入DataTable中即可"
-------
我现在在做的项目就想用这种方法,但是我完全不知道要怎么写脚本把Excel配置文件内容相应的读入DataTable??可不可以提示下???
页: [1]
查看完整版本: 关于脚本的规范