51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10460|回复: 20
打印 上一主题 下一主题

[原创] 【原创】自己使用了的TD&QC工作流三个

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-9 15:00:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

前言:
我使用TD时间也不是非常长,和牛人相比那是天壤之别!只是我有幸配置TD。相信不是哪么多测试人员有这种锻炼的机会!
在我配置的过程中,发现关于工作流(workflow)的资料非常之少,给我配置起来带来了很大时间上的浪费。可是工作流却是TD功能宽度和自定义级别最大的,如果不学会来使用,TD很多应该能实现的功能都可能大打折扣或者不能使用。当然,本着对初学者和不太懂的人以借鉴的思想,我尽量写的简便通俗易懂点

一、基础篇:  -- TD和QC的工作流其实是一样的
1.工作流脚本是使用VB语言编写的,所以它支持如msgbox类的输入输出等函数。
2.您需要明确知道你想在什么时候执行你的脚本。比如Defects_Bug_New里面的语句只在你新建缺陷的时候执行,其他时候是不执行的。
      再比如Defects_Bug_FieldChange就是在缺陷内容发生改变了的时候执行的语句。
3.一般默认的东西我们不要乱作修改。如:

    Sub Defects_Bug_FieldChange(FieldName)
        On Error GoTo 0
    End Sub

    这些内容我们就要保留。
4.同样的Sub可以存在多个,也就是说如Sub Defects_Bug_FieldChange(FieldName)这样的函数我们可以编写几个,不必要修改系统原来的Sub Defects_Bug_FieldChange(FieldName)
5.文中提到的,TD数据库中使用的字段(如BG_BUG_ID)。是那里来的?
它是在你需要输入USER IDPassword那个页面(/start_a.htm),右上角有个叫CUSTOMIZE的链接,点击下,用admin用户登陆,在“Customize Project Entities” -> “DEFECT”里面的System Fields或者User Fields里面随便选择一个字段,右边查看里面“Field Name”后面的就是数据库中使用的字段了的名字了。比如你选择Subject,对应的Field Name就是BG_SUBJECT.
6.工作流中的GoTo语句不能像VB里面那样使用。因为标签是无效的。
7.理论上来讲,TD中的大部分功能东西都能通过这里编辑,比如按钮。事件。当然前提是你够熟悉。
8.如果要脚本起作用,只要退出再登陆进TD.脚本就会立刻起作用。

二、工作流的应用一  --新建缺陷时候的默认值
需求说明:我们在打开添加缺陷的页面的时候(特别是使用了自定义字段的时候)我们最希望的就是给这些不是非常重要的,但是又不希望没有内容的字段,有些默认值。哪么我们第一个来做的就是这个需求。请先看代码。

   Sub Defects_Bug_New
        On Error Resume Next
            Bug_Fields("BG_DETECTION_VERSION").Value = "Ehome 2.0"
    On Error GoTo 0
    End Sub

    这段代码,你只要复制到工作流脚本中去,哪么你在添加缺陷的时候,版本这个字段里面就会自动有一个内容Ehome 2.0。这段代码中的Defects_Bug_New代表新建缺陷的时候执行的脚本,Bug_Fields("BG_DETECTION_VERSION")具体缺陷字段。这是最简单的工作流脚本了。你明白了没有?

三、工作流的应用二   --记录修改人和修改时间
需求说明:我们希望在开发修改了一个缺陷的状态为“修改完成“的时候,记录下修改他的人,和修改时间。方便我们管理。同样,请先看代码:

    Sub Defects_Bug_FieldChange(FieldName)
        On Error Resume Next
        if FieldName = "BG_STATUS" Then
            if Bug_Fields("BG_STATUS").Value = "P1-修改完成待验证" then
                Bug_Fields("BG_RESPONSIBLE").Value = User.UserName
                Bug_Fields("BG_USER_02").Value = now()
            end if
        end if
        On Error GoTo 0
    End Sub

这段代码内容就多了几行,里面Defects_Bug_FieldChange(FieldName)代表的是缺陷字段发生改变的时候执行的语句。里面的BG_STATUS代表缺陷状态,BG_RESPONSIBLE代表负责人(Syestem Fields表里的),BG_USER_02代表用户自定义字段(User Fields里的)。User.UserName代表当前操作的用户名,now()代表当前时间。剩下的东西就很容易看懂了吧。

三、工作流的应用三  --不修改我的缺陷必须说理由
需求说明:有时候开发很懒,不喜欢写说明,哪么对我们测试来说,没有任何说明就返回我们。使我们很不好处理问题。哪么我们希望当程序员如果修改缺陷状态为”不修改””遗留”的时候,让程序员必须输入说明。

    Sub Defects_Bug_FieldChange(FieldName)
        On Error Resume Next

        dim i
        i=""
        msg1 ="遗留或不修改此缺陷需要输入说明!"
        title1 ="输入说明"

         If FieldName = "BG_STATUS" Then
             if (Bug_Fields("BG_STATUS").Value = "P2-待遗留" or Bug_Fields("BG_STATUS").Value = "P3-暂时不修改") and Bug_Fields("BG_DEV_COMMENTS").Value = "" then
                 do
                     i= InputBox(msg1,title1)
                     if i="" then
                         msgbox"必须输入说明"
                     else exit do
                     end if
                 loop
                 Bug_Fields("BG_DEV_COMMENTS").Value = i
              end if
          end if
        On Error GoTo 0
    End Sub

    这段代码内容就稍微多了点点,并且使用了VB的函数。我就简单的说下思路吧,具体解释,只要你看懂了上面的工作流。相信这个里面的代码也不是很复杂。
1.开始声明和定义一些需要使用的变量。和内容。
2.判断修改的字段是不是缺陷状态(BG_STATUS
3.再判断修改成的内容是不是遗留或者不修改     
4.最后判断说明(BG_DEV_COMMENTS)里面是不是没有内容
5.如果是的话,就打开输入函数输入说明(InputBox(msg1,title1)
6.做个循环,如果没有输入说明,就提示必须输入说明(msgbox"必须输入说明"
7.最后吧输入的内容赋值给保存说明的字段(BG_DEV_COMMENTS

最后,由于时间有限,没有写更多的内容。有需要讨论的可以发邮件给我,我的邮箱是onlonely@163.com




[ 本帖最后由 onlonely 于 2009-2-10 16:43 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-2-10 09:01:14 | 只看该作者
谢谢楼主的共享精神,其实后台脚本都是vbs的,调用了QC内置的对象函数,还是挺简单的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-2-10 16:25:37 | 只看该作者
的确!代码本身并不复杂。
复杂的是是否知道知道如果使用,在那里使用。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-3-4 17:09:19 | 只看该作者
TD的时候改过字段显示,新增 或隐藏一些字段。QC应该区别 不大。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-3-12 16:55:44 | 只看该作者
对,工作流里面是直接操作数据库的,在界面上显示与否并不重要。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-3-23 09:28:32 | 只看该作者
强   收藏了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-11-11 09:38
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    7#
    发表于 2009-3-24 18:25:29 | 只看该作者
    受益了
    风流也共享一点吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-6-24 21:14:38 | 只看该作者
    收藏了,真不错~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-12-2 10:12
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
    发表于 2009-7-13 23:31:52 | 只看该作者
    不错的教材!支持!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-7-17 20:31:02 | 只看该作者
    受益了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-7-18 09:59:09 | 只看该作者
    ding
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-7-18 13:03:37 | 只看该作者
    不是很明白。我还不知道在哪里加代码呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2009-7-20 11:20:38 | 只看该作者

    回复 12# 的帖子

    选择项目>工具>自定义>设置工作流
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-10-20 16:48:41 | 只看该作者
    膜拜下~~ 感谢楼主分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-9-9 18:01:35 | 只看该作者
    看哥写的工作流

    Sub  Auto_reopen()
      On Error Resume Next '从该语句开始,重新打开  reopen变动
      if Bug_Fields.Field("BG_STATUS").IsModified and Bug_Fields.Field("BG_STATUS").Value="重新打开" then
         i= Bug_Fields.Field("BG_USER_08").Value
       '  level=Bug_Fields.Field("BG_SEVERITY").Value
       '  msgbox  level
         if i ="0" then
            Bug_Fields.Field("BG_USER_08").Value="1"
            elseif  i ="1" then
            Bug_Fields.Field("BG_USER_08").Value="2"
            elseif  i="2"  then
            Bug_Fields.Field("BG_USER_08").Value="3"
            elseif  i="3"  then
            Bug_Fields.Field("BG_USER_08").Value="4"
         end if
      end if
      On Error GoTo 0
      End Sub
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2011-11-28 11:13:57 | 只看该作者
    写的真的挺好的~学习,收藏~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-4-30 09:49
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2012-2-17 14:50:42 | 只看该作者
    各位帮个忙
    现在要写一个 当测试人员关闭缺陷时 要求选择缺陷产生的原因和缓解措施(这两个都做成查找列表)
    在新增的时候不要求选择这两个 或者干脆看不到

    请知道的说说思路 谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2012-2-21 11:27:17 | 只看该作者
    先试验下再回复。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2012-2-21 11:28:49 | 只看该作者
    首先后台字段设置时,需手工添加你需要的两个字段“缺陷产生的原因”、“缓解措施”至于内容你自己定义完善。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2012-5-7 15:36:22 | 只看该作者
    挺好的,有空实践一下
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-19 07:15 , Processed in 0.086541 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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