51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9948|回复: 22
打印 上一主题 下一主题

[讨论] 关于脚本的规范

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-6-21 00:07:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
才接触QTP一段时间不久,对自己写的脚本也在不断的改进中有了一定的认识,但是现在还是没有想出一个比较完美的脚本规范来,希望有经验的高手来指教下

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

二、对于参数化

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

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

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

三、对于描述性编程

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

   
     上面遇到的这些问题,对于脚本的规范,大家有没有好的建议或项目中的实际经验,说说吧~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-6-21 00:24:13 | 只看该作者
呵呵,等你对QTP熟悉到一定程度,抛弃Action、DataTable、检查点和ActiveScreen吧!
采用Function+Library+共享对象仓库,你会得到自由!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-6-21 00:37:55 | 只看该作者
LS说得有一定道理,但是对于比较复杂的系统来说,放弃QTP本身方便的脚本生成方法,完全手工的去写脚本的话,一是时间上可能不允许,二是QTP跟开发工具相比,所使用的语言有一定的局限性啊。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-6-21 01:51:08 | 只看该作者
那你这些问题也不是什么问题!

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


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


二、对于参数化

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

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

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


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


三、对于描述性编程

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


      没必要用描述性编程了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2007-6-27 09:43:01 | 只看该作者
    这样有深度的讨论越多越好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-6-27 15:40:42 | 只看该作者
    支持一下下sdlkfj3 !!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-6-29 15:57:54 | 只看该作者
    ding
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-7-29 22:21:59 | 只看该作者
    顶一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-7-30 19:45:46 | 只看该作者
    感觉每次看yabest的帖子都能得到点什么,支持
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-7-31 10:08:24 | 只看该作者

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

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

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-8-1 14:35:48 | 只看该作者
    原帖由 househou 于 2007-7-31 10:08 发表
    Function+lib+共享对像库,感觉很好
    请教yabest楼主几个问题:
    1.这样的对象库建立是否方便并易于维护
    2.如果需要检查的地方很多,事先怎么记得清楚要使用Function或者lib检查什么
    3.这样的自动化测试框架的 ...



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

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

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

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

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

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-9-28 13:39:37 | 只看该作者

    回复 11# 的帖子

    请教lib是什么?我不太明白,还望指点。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2007-11-8 15:44:05 | 只看该作者
    lib是 library 的缩写,意思是 库文件。如果你做过开发,就很容易理解了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-4-10 01:47
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    14#
    发表于 2007-11-16 14:17:59 | 只看该作者

    回复 11# 的帖子

    水平不行,等待以后和你们讨论
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-9-1 14:15:32 | 只看该作者
    共享对象库的确不错,易于管理,但是如果所有对象都存放于一个对象库中,一旦对象过多那么查找起来就太花费时间了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-9-18 17:39:59 | 只看该作者

    回复 1# 的帖子

    学习中呀,让我倍感汗!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2008-10-23 00:15:19 | 只看该作者
    "可以使用 DataTable + Excel配置文件 的方式,你录脚本时只要面对DataTable,用户只要面对外部的Excel配置文件,只要你在开始运行时,写段脚本,将Excel配置文件内容相应的读入DataTable中即可"
    -------
    我现在在做的项目就想用这种方法,但是我完全不知道要怎么写脚本把Excel配置文件内容相应的读入DataTable??可不可以提示下???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-7-15 14:47:22 | 只看该作者
    很好很强大  继续关注
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2010-2-9 15:39:42 | 只看该作者
    原帖由 爱喝可乐的蚊子 于 2008-10-23 00:15 发表
    "可以使用 DataTable + Excel配置文件 的方式,你录脚本时只要面对DataTable,用户只要面对外部的Excel配置文件,只要你在开始运行时,写段脚本,将Excel配置文件内容相应的读入DataTable中即可"
    -------
    我现在在 ...

    是啊,所谓“在开始运行时,写段脚本,将Excel配置文件内容相应的读入DataTable中即可”,我也曾这么想过。
    但将Excel配置文件内容读入相应的DataTable中,有具体施行的例子么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2010-6-7 15:39:34 | 只看该作者
    用Import方法导入到DATATABLE表里
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-20 08:45 , Processed in 0.080200 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表