51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5126|回复: 12
打印 上一主题 下一主题

[原创] TestDirector脚本编程实践

[复制链接]
  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2009-11-20 16:46:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    TestDirector脚本编程实践
    qiguojie原创文章,转载请注出处,谢谢!
    TestDirector脚本可以做很多编程,给我们的工作带来便利,实现起来也非常的简单,下面来列举一些实例给大家参考。
    1、增加缺陷描述模板
    缺陷描述中是一个大的文本框,我们通常要添加一些项进去,比如说所在模块、重现率、重现步骤、数据库地址、后台错误信息等内容(举例),那么如何做呢,很简单,看我同事写的下面代码:
    Sub AddDefects_SetDefaultValues   '自定义函数,修改缺陷字段【DESCRIPTION】的值,也就是修改描述的值
           Bug_Fields("BG_DESCRIPTION").Value ="测试系统:"&Chr(13)&Chr(10)&"测试机构:"&Chr(13)&Chr(10)&"测试数据库:"     '这里是拼接的字符串,中间是换行和回车
    End Sub
    Sub Defects_Bug_New   'bug创建时
      AddDefects_SetDefaultValues   'Add by LvShijuan  '调用上面的函数
    End Sub

    2、msgbox
    消息提示函数msgbox,可以在处理某些操作前,或者修改后弹出提示,提示信息可自定义,这样可以指导新手操作,明确一些注意事项,请看下面代码:
    Function Defects_ActionCanExecute(ActionName)
      On Error Resume Next
      If User.IsInGroup("Developer") Then
         msgbox"烦请优先处理严重性级别大于【4-严重】和优先级大于【3-急】的缺陷,比较重要!!"
      End If
      On Error GoTo 0
    End Function
    上述代码保存后,只要是Developer组的用户,在打开缺陷窗口时,会弹出提示:“烦请优先处理严重性级别大于【4-严重】和优先级大于【3-急】的缺陷,比较重要!!”,再看另一段:
    Function Defects_ActionCanExecute(ActionName)
      On Error Resume Next
      If User.UserName = "qiguojie" Then
         msgbox"学无止境"
      End if
      On Error GoTo 0
    End Function
    上面代码保存后,qiguojie这个用户在打开缺陷窗口时,会弹出消息框:“学无止境”,再看一个列子:
    Sub Defects_EnterModule
      On Error Resume Next
      msgbox "通知:"&Chr(13)&Chr(10)&"1、近期TestDirector所在服务器网络不稳定,请大家在汇报缺陷同时,记录相应bug到文档中。"&Chr(13)&Chr(10)&"qiguojie at 2009-11-20"
      On Error GoTo 0
    End Sub
    这个在进入Defects模块时,就会自动弹出提示了,是不是很有意思呢??

    3、设置字段默认值
    TestDirector不能像bugzilla似的,选择模块后,就能自动指派给相关开发人员(也许可以,但是我没找到),因此怎么才能实现呢,其实很简单,自己写个对应关系就行了,例子如下:
    Sub NameAndMoudle(Moudle)   '自定义函数,判断不同的传入参数值,自动设置【指派给】字段的值
        Select Case Moudle     'Case选择
            Case "LoadRunner"
                Bug_Fields("BG_RESPONSIBLE").Value = "ZEE"    '开个玩笑哈,如果传入的模块是LoadRunner,那么自动将问题指派给ZEE(借用一下)
            Case "QTP"
                Bug_Fields("BG_RESPONSIBLE").Value = "陈能技"
            Case "TD"
                Bug_Fields("BG_RESPONSIBLE").Value = "peterz"
        End Select
    End Sub

    Function Defects_Bug_FieldCanChange(FieldName, NewValue)   '字段可以修改时
        On Error Resume Next
            If FieldName = "BG_EDTECTION_VERSION" Then    '如果修改的字段是【所在版本】(这里是举例,也可以判断自定义模块)
                NameAndMoudle(NewValue)   '调用函数,根据修改后的值【NewValue】,修改【指派给】字段的值
            End If
        On Error GoTo 0
    End Function
    这段代码不是很复杂,我们公司的TD里我也写了好多差不多的。
    好了,今天比较闲,就写这些吧,欢迎大家讨论,以后有时间再说。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2009-11-21 20:51:40 | 只看该作者
    很好。
    问一下楼主是否可以重新定义现有选择列表的选择项目。
    例如:对于用户列表进行过滤,只显示开发人员。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-11-23 13:14:35 | 只看该作者
    版主还没有回复啊!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2009-11-23 16:55:23 | 只看该作者
    sorry,不是这个版的版主哈,今天公司事情多,还没看哈。

    你这个确实很有用,TD8是默认显示list的所有成员,我现在研究下,有结果在这个贴里跟哈。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2009-11-23 18:18:24 | 只看该作者
    谢谢楼主了! 等待结果。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2009-11-23 18:24:32 | 只看该作者
    目前进度:下班了,抽时间去看了下,很难。。还没找到实现方法。

    LIST好像只能赋值一个值,是默认显示的,而且还没找到列表显示的方法。到HP的社区搜索了下,也没有找到解决方案,明天找时间再研究下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-1-1 17:29:39 | 只看该作者
    恩,很难。再给楼主打打气。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-1-25 13:07:19 | 只看该作者
    Sub WizardListCust
    ' This subroutine had been automatically generated by "Script Generator - List Customization".
    ' Any modification you make will be overwritten next time you use the generator.

        ' BEGIN: When primary 姓名 value is changed, 角色's selection list will change.
        Select Case Bug_Fields("BG_DETECTED_BY").Value
            Case "admin"
                Bug_Fields("BG_USER_08").List = Lists("YesNo")

        End Select
        ' END: When primary 姓名 value is changed, 角色's selection list will change.

    End Sub
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-6-30 15:59:39 | 只看该作者

    不好意思

    都是高手,留言都胆怯。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-7-2 23:24:01 | 只看该作者
    我想获得userlist的fullname,实在不知道该怎么写
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-7-10 13:34:14 | 只看该作者
    好像搞不成啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-7-14 18:49:41 | 只看该作者
    canchange 和change 的执行关系是怎么样的?个人感觉canchange是在change之前执行的,所以在3问题里面,直接在canchange里面设置是有问题的,并且,楼主的script覆盖了其默认的内容,可能会导致其他数据域无法修改
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-7-15 00:00:54 | 只看该作者
    不错
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-18 08:39 , Processed in 0.079648 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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