51Testing软件测试论坛

标题: TestDirector脚本编程实践 [打印本页]

作者: qiguojie    时间: 2009-11-20 16:46
标题: TestDirector脚本编程实践
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里我也写了好多差不多的。
好了,今天比较闲,就写这些吧,欢迎大家讨论,以后有时间再说。
作者: cheryl    时间: 2009-11-21 20:51
很好。
问一下楼主是否可以重新定义现有选择列表的选择项目。
例如:对于用户列表进行过滤,只显示开发人员。
作者: cheryl    时间: 2009-11-23 13:14
版主还没有回复啊!
作者: qiguojie    时间: 2009-11-23 16:55
sorry,不是这个版的版主哈,今天公司事情多,还没看哈。

你这个确实很有用,TD8是默认显示list的所有成员,我现在研究下,有结果在这个贴里跟哈。
作者: cheryl    时间: 2009-11-23 18:18
谢谢楼主了! 等待结果。
作者: qiguojie    时间: 2009-11-23 18:24
目前进度:下班了,抽时间去看了下,很难。。还没找到实现方法。

LIST好像只能赋值一个值,是默认显示的,而且还没找到列表显示的方法。到HP的社区搜索了下,也没有找到解决方案,明天找时间再研究下
作者: cheryl    时间: 2010-1-1 17:29
恩,很难。再给楼主打打气。
作者: uqiu    时间: 2010-1-25 13:07
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
作者: mouse8888    时间: 2010-6-30 15:59
标题: 不好意思
都是高手,留言都胆怯。
作者: elanzj    时间: 2010-7-2 23:24
我想获得userlist的fullname,实在不知道该怎么写
作者: elanzj    时间: 2010-7-10 13:34
好像搞不成啊
作者: elanzj    时间: 2010-7-14 18:49
canchange 和change 的执行关系是怎么样的?个人感觉canchange是在change之前执行的,所以在3问题里面,直接在canchange里面设置是有问题的,并且,楼主的script覆盖了其默认的内容,可能会导致其他数据域无法修改
作者: fwind1    时间: 2010-7-15 00:00
不错




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2