51Testing软件测试论坛

标题: 在TD中如何修改脚本,使新增Bug的描述中有预先填写好的内容? [打印本页]

作者: letmehappy    时间: 2006-9-11 17:19
标题: 在TD中如何修改脚本,使新增Bug的描述中有预先填写好的内容?
在TD中新增一条bug时,bug的描述默认是空的,如果要使bug的描述中有预先填写好的内容(如前置条件,实际结果,预期结果等),怎样修改脚本呢?

我在TD自带的project(Test_Director_Demo)中配置成功,相关内容如下:

1 进入Customize->Set up workflow->Script editor
2 这个项目,系统自建了一个sub:AddDefect_SetDefaultValues,我在这个sub中新增了一行:
Fields("BG_DESCRIPTION").Value = "[Pre Condition]" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "[Procedure]" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & "[Expected Behavior]:"  & Chr(13) & Chr(10) & "[Result Behavior]:"
注:在Defects_Bug_New中调用了AddDefect_SetDefaultValues

3 保存退出
4 进入TD,新增一个bug,bug描述中自带了新增的内容:
[Pre Condition]

[Procedure]
1.
2.
3.
[Expected Behavior]:
[Result Behavior]:

这达到了我的目的,这样所有测试人员在填写bug时有一个统一的格式,不会一人一个样.

现在问题是:我在自己新建的一个project中,使用同样的代码无法达到目的.新增的project没有AddDefect_SetDefaultValues这个sub,我在Defects_Bug_New这个sub中直接增加了Fields("BG_DESCRIPTION").Value这条语句,想让新增一个bug时自动在描述中添加想要的内容.保存退出后,进入TD,新增一个bug,描述中没有想要的内容.

想请教大家,我在新建的project中这样处理是在哪里出错了?

[ 本帖最后由 letmehappy 于 2006-9-11 17:45 编辑 ]
作者: lj1981727    时间: 2006-9-12 21:51
不知道你用的是什么版本的,我以前在脚本中 sub wizardfieldcust_add中作过默认值的修改 ,
比如说新增一个bug,让其默认状态是 book而不是new

你把你的代码加到sub wizardfieldcust_add
                                if user.isingrout("" ),
你要加到你需要填加的那个群组里
我已经在我机子上TD8.0上试过了,加到sub wizardfieldcust_add中应该没有问题

[ 本帖最后由 lj1981727 于 2006-9-12 22:09 编辑 ]
作者: chellcy    时间: 2006-9-13 11:39
我在TD8.0上
sub wizardfieldcust_add
       if user.isingrout("指定角色" )中加入楼主的代码
Fields("BG_DESCRIPTION").Value = "[Pre Condition]" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "[Procedure]" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & "[Expected Behavior]:"  & Chr(13) & Chr(10) & "[Result Behavior]:"
保存,退出,再次登陆时提交defect时报错:
Error at Line 972, (character 9)
对象不支持此属性或方法: 'Fields(...).Value':
====================
    SetFieldApp "BG_USER_05", False, False, 0, 42
==> Fields("BG_DESCRIPTION").Value = "[Pre Condition]" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "[Procedure]" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & "[Expected Behavior]:"  & Chr(13) & Chr(10) & "[Result Behavior]:"
====================

这是为什么呢?
作者: letmehappy    时间: 2006-9-13 13:29
谢谢lj1981727 的回复,我用的TD也是8.0

这个问题我后来参考了TD自带的那个project,发现原来所用的方法基本上是对的,只是因为有个变量没有定义,所以不起作用.正确的方法如下:
在新建的Project中,脚本的最上面定义一个变量:
Dim Fields
然后修改Sub Defects_Bug_New:
==========
Sub Defects_Bug_New
    Fields = Bug_Fields
    Fields("BG_DESCRIPTION").Value = "[Pre Condition]" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "[Procedure]" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & "[Expected Behavior]:"  & Chr(13) & Chr(10) & "[Result Behavior]:"
  
  On Error Resume Next
  On Error GoTo 0
End Sub
==========

这样就可以了,我在TD 8.0验证通过

sub wizardfieldcust_add中应该可以详细得定义各个组的一些参数,不过如果只是一些简单的修改,在Sub Defects_Bug_New直接添加应该可以了.

chellcy,你可以试一下.
作者: chellcy    时间: 2006-9-13 13:58
ok,成功。谢谢~~~
我现在正在琢磨如何给字段(lookup list类型)指定默认值。
按照你的方法,在脚本开始定义Dim Defaltbugstatus ,
然后在Sub Defects_Bug_New 处添加

Defaltbugstatus = Bug_Fields
  Defaltbugstatus("BG_STATUS").Value = "01新问题"

  On Error Resume Next
  On Error GoTo 0

成功耶!谢谢啦~~~

[ 本帖最后由 chellcy 于 2006-9-13 14:15 编辑 ]
作者: letmehappy    时间: 2006-9-13 14:08
原理是一样的,只要在Sub Defects_Bug_New中增加:
Fields("字段名").Value = 你想要的值

就可以了.
作者: chellcy    时间: 2006-9-13 14:28
感谢楼主,我们还是需要一些有编程经验的人呀!
作者: letmehappy    时间: 2006-9-13 15:41
有编程经验当然最好了,我组里有一个测试工程师原来是做开发的,他的测试质量比其他没做过开发的测试要好,而且能开发一些小工具和一些实用的脚本,节省了不少时间.
作者: hadywei    时间: 2006-9-13 17:39
我想问一下  在描述里写死的那些项可以是中文吗?
作者: hadywei    时间: 2006-9-13 17:49
嘿嘿 ,我尝试过了,是可以支持中文的,谢谢了,这个方法真的很棒
作者: chenxi01032005    时间: 2006-9-14 11:25
原帖由 chellcy 于 2006-9-13 13:58 发表
ok,成功。谢谢~~~
我现在正在琢磨如何给字段(lookup list类型)指定默认值。
按照你的方法,在脚本开始定义Dim Defaltbugstatus ,
然后在Sub Defects_Bug_New 处添加

Defaltbugstatus = Bug_Fields
  De ...


不懂的是:
为什么给“Defaltbugstatus”赋值的是Bug_Fields?
Bug_Fields是怎么来的?
thx.
作者: hadywei    时间: 2006-9-14 11:54
我觉得bug_field是td中自定义的变量名
作者: decset    时间: 2007-7-10 12:13
同志们,你们给字段(lookup list类型)指定默认值。直接用.value=所要的值,这样之后还能改变所以的值吗,我这么做之后,值就被写死啦?不能改了
作者: zuoye    时间: 2007-7-18 15:41
可以啊,很实用,我刚刚就是这么做的
作者: decset    时间: 2007-8-21 16:04
还是有问题的,按照大家的写法用value="默认值"这样是没有问题的,但是我遇到的问题是,当我的状态等于某一值的时候,另一个lookup list选项的值为一默认值这样要怎么实现,如果我用了
if Bug_Fields("BG_status").Value ="CLOSE" then
    Bug_Fields.Field("BG_CLOSING_DATE").Value=date   
  end if

这样我的时间就被写死为当天了,想改也不能改。我想要的效果是,记录关闭的时候能先默认为当天,但是如果我要改变的话也允许。这样是否能实现呢。
作者: seiyababy    时间: 2007-9-18 17:17
学习中   试试
作者: yangbohustwb    时间: 2007-9-20 00:14
sdlkfj2
作者: lvsh11    时间: 2008-3-25 10:13
感谢!!!!!!
作者: 木木妹    时间: 2008-3-27 16:11
楼主讲的是在TD自带的上面修改,一般我们不会修改,因为默认的样例不是我们要用的项目。具体项目下应
首先在你要修改的模块比如NEW_BUG前定义field
例子
dim field
sub new_bug
field=BUG_FIELD
field("自定义").value="默认值"
作者: yegj    时间: 2008-4-1 11:17
我试了一下,不需要在脚本前自定义变量也可以。
Sub Defects_Bug_New
    Bug_Fields("BG_DESCRIPTION").Value = "[Pre Condition]" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "[Procedure]" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & "[Expected Behavior]:"  & Chr(13) & Chr(10) & "[Result Behavior]:"
  
  On Error Resume Next
  On Error GoTo 0
End Sub
作者: ggogw    时间: 2008-4-1 15:21
系统自带的project(Test_Director_Demo)有sub:AddDefect_SetDefaultValues这一项,而自己新建的工程没有,要是给自建的工程定制规则,那又如何处理呢?
作者: ggogw    时间: 2008-4-1 18:12
不好意思~~没仔细看原文!!问题弄明白了~~定制测试成功。谢了~~
作者: 820828    时间: 2008-4-7 17:24
恩,很不错耶!谢谢楼主!
作者: syren    时间: 2009-10-16 11:01
虽然帖子比较老,但是内容很赞




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