-
TD 中工作流的应用
2009-02-09 14:59:15
前言:我使用TD时间也不是非常长,和牛人相比那是天壤之别!只是我有幸配置TD。相信不是哪么多测试人员有这种锻炼的机会!在我配置的过程中,发现关于工作流(workflow)的资料非常之少,给我配置起来带来了很大时间上的浪费。可是工作流却是TD功能宽度和自定义级别最大的,如果不学会来使用,TD很多应该能实现的功能都可能大打折扣或者不能使用。当然,本着对初学者和不太懂的人以借鉴的思想,我尽量写的简便通俗易懂点一、基础篇:为了能够更好的开始讲解工作流,我先说明些东西。这些内容是基础。请耐心看,如果你已经知道可以跳过。1.作流其实就是TD中提供的一种可以达到编程效果的一个编辑器。我们可以直接编辑脚本,不用单独编译。2.工作流脚本是使用VB语言编写的,所以它支持如msgbox类的输入输出函数。3.您需要明确知道你想在什么时候执行你的脚本。比如Defects_Bug_New里面的语句只在你新建缺陷的时候执行,其他时候是不执行的。再比如Defects_Bug_FieldChange就是在缺陷内容发生改变了的时候执行的语句。4.一般默认的东西我们不要乱作修改。如:Sub Defects_Bug_FieldChange(FieldName)On Error GoTo 0End Sub这些内容我们就要保留。5.同样的Sub可以存在多个,也就是说如Sub Defects_Bug_FieldChange(FieldName)这样的函数我们可以编写几个,不必要修改系统原来的Sub Defects_Bug_FieldChange(FieldName)6.文中提到的,TD数据库中使用的字段(如BG_BUG_ID)。是那里来的?它是在你需要输入USER ID和Password那个页面(/start_a.htm),右上角有个叫CUSTOMIZE的链接,点击下,用admin用户登陆,在“Customize Project Entities” -> “DEFECT”里面的System Fields或者User Fields里面随便选择一个字段,右边查看里面“Field Name”后面的就是数据库中使用的字段了的名字了。比如你选择Subject,对应的Field Name就是BG_SUBJECT.7.工作流中的GoTo语句不能像VB里面那样使用。因为标签是无效的。8.理论上来讲,TD中的大部分功能东西都能通过这里编辑,比如按钮。事件。当然前提是你够熟悉。9.如果要脚本起作用,只要退出再登陆进TD.脚本就会立刻起作用。二、工作流的实践一 --新建缺陷时候的默认值需求说明:我们在打开添加缺陷的页面的时候(特别是使用了自定义字段的时候)我们最希望的就是给这些不是非常重要的,但是又不希望没有内容的字段,有些默认值。哪么我们第一个来做的就是这个需求。请先看代码。Sub Defects_Bug_NewOn Error Resume NextBug_Fields("BG_DETECTION_VERSION").Value = "Ehome 2.0"On Error GoTo 0End Sub这段代码,你只要复制到工作流脚本中去,哪么你在添加缺陷的时候,版本这个字段里面就会自动有一个内容Ehome 2.0。这段代码中的Defects_Bug_New代表新建缺陷的时候执行的脚本,Bug_Fields("BG_DETECTION_VERSION")具体缺陷字段。这是最简单的工作流脚本了。你明白了没有?三、工作流的实践二 --记录修改人和修改时间需求说明:我们希望在开发修改了一个缺陷的状态为“修改完成“的时候,记录下修改他的人,和修改时间。方便我们管理。同样,请先看代码:Sub Defects_Bug_FieldChange(FieldName)On Error Resume Nextif FieldName = "BG_STATUS" Thenif Bug_Fields("BG_STATUS").Value = "P1-修改完成待验证" thenBug_Fields("BG_RESPONSIBLE").Value = User.UserNameBug_Fields("BG_USER_02").Value = now()end ifend ifOn Error GoTo 0End 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 Nextdim ii=""msg1 ="遗留或不修改此缺陷需要输入说明!"title1 ="输入说明"If FieldName = "BG_STATUS" Thenif (Bug_Fields("BG_STATUS").Value = "P2-待遗留" or Bug_Fields("BG_STATUS").Value = "P3-暂时不修改") and Bug_Fields("BG_DEV_COMMENTS").Value = "" thendoi= InputBox(msg1,title1)if i="" thenmsgbox"必须输入说明"else exit doend ifloopBug_Fields("BG_DEV_COMMENTS").Value = iend ifend ifOn Error GoTo 0End Sub这段代码内容就稍微多了点点,并且使用了VB的函数。我就简单的说下思路吧,具体解释,只要你看懂了上面的工作流。相信这个里面的代码也不是很复杂。1.开始声明和定义一些需要使用的变量。和内容。2.判断修改的字段是不是缺陷状态(BG_STATUS)3.再判断修改成的内容是不是遗留或者不修改4.最后判断说明(BG_DEV_COMMENTS)里面是不是没有内容5.如果是的话,就打开输入函数输入说明(InputBox(msg1,title1))6.做个循环,如果没有输入说明,就提示必须输入说明(msgbox"必须输入说明")7.最后吧输入的内容赋值给保存说明的字段(BG_DEV_COMMENTS)最后,由于时间有限,没有写更多的内容。有需要讨论的可以发邮件给我,我的邮箱是onlonely@163.com -
TD中配置自定义发送邮件的一些总结
2009-01-19 13:57:20
前言:前前后后快一天时间了,总算是理解了TD中发送邮件格式自定义设置的一些方法,和里面字段的含义。
觉得有必要留下点什么,也方便方便以后遇到此类情况的人,有所参考,现在网络上真是很难搜索到配置发送邮件格式的文章。
当然,在开头呢,还需要解释下,我文中提到的,TD数据库中使用的字段。是那里来的!
在你需要输入USER ID和Password 那个页面(/start_a.htm),右上角有个叫CUSTOMIZE 的链接,点击下,用admin用户登陆,在“Customize Project Entities ” -> “DEFECT ”里面的System Fields 随便选择一个,右边查看里面“Field Name ”后面的就是数据库中使用的字段了的名字了。比如你选择Subject ,对应的Field Name 就是BG_SUBJECT . 总结一、使用html格式发送的邮件,自定义邮件标题的方法。
操作:
1.点"开始"->"运行 "。输入"mecury.ini "或者""mercury.ini回车,打开名为mecury.ini的配置文件
2.在文档的末尾加上如下面类似的配置代码
[SAQFORMAT]
ehome=TD中有问题等待您的处理!缺陷编号:?BG_BUG_ID
说明:1.其中“ehome”为你建立项目数据库时候使用的项目名称。
2. “=”后面就是你需要使用的邮件标题,如果你需要使用变量替换的话按照“?BG_BUG_ID”这样的方法,其中“? ”不能省略,BG_BUG_ID 为TD中字段在数据库中的名称。 3.最近发现TD8.0 SP2版本配置文件名称改为"mercury.ini"
这个方法可以解决TD中发送的缺陷标题如果过长,发送的邮件标题乱码的问题,另外这个方法最初是一个牛人用英文回复在一个论坛上的,可看的我头晕。总结二、在TD 的邮件配置文件中使用中文。达到汉化发送邮件中的某些无法通过修改TD 字段来汉化的内容。
操作:
1.打开目录:C:\Program Files\Common Files\Mercury Interactive\DomsInfo\StyleSheets
如果你的TD安装的目录不同,请相应修改地址
2.用记事本打开(一定记住用记事本,其他的我还没发现可以简单修改编码格式)BUG_TEXT.xsl 或者BUG_HTML.xsl 文件。(这两个分别对于发送text 格式和html 格式邮件的配置文件)
3.在配置文件中汉化需要汉化的各个在邮件中的英文,比如“History ”
4,在菜单中点“文件”->“另存为 !在“编码 ”里面选择“UTF-8 ”。确定保存。
这个方法很好,很强大,是受一个同事启发的。开始我直接在头文件中加入encoding=“UTF-8”发现依然解释不成功。后来发现保存格式才是根本。最后解释下,为什么修改保存的文件格式后就可以解析呢,因为原来的那个配置文件保存的编码是ANSI,这个编码格式根本就不支持中文,自然在配置文件里面不能存在中文内容了。总结三、解决HTML格式发送的邮件使用foxmail收取是乱码问题。操作。1,打开BUG_HTML.xsl2,把其中的<xsl:attribute name="CONTENT"> <xsl:value-of select="//@td_lang"/></xsl:attribute>修改为<xsl:attribute name="CONTENT">text/html;CHARSET=GB2312</xsl:attribute>这个问题是编码问题造成的,其实你用foxmail收到邮件后,在邮件里面点右键选择编码->GB2312其实也是可以看到正常的文字的。总结四、解决TD 使用html 格式发送的邮件缺陷标题如果过长,发送的邮件内容是源代码的问题。
操作:
1.首先你看上面的《总结二》打开那个目录下的”BUG_HTML.xsl ”
2.从顶部开始看文件,或者搜索第一个<TABLE align="center"( 注意,这个文件里面很多TABLE 标签,一定要是从顶向下开始数的第一个)
3.修改这个TABLE 标签后面的属性,把width="90%" 这个属性去掉。就可以了!
这个缺陷标题过长,显示源代码的问题,花的时间最长了。原因就是配置文件里面固定死了缺陷标题的宽度。我在网上搜索相关文档,大多只能解决邮件标题显示问题,对于邮件内容显示源代码问题的解决方案就没有了。我虽然不敢说我是第一个解决,不过我的确没搜索到解决方法。同样是我理解配置文件的时候而然想到的解决方法,希望以后出现这个问题的人能找到这个文章解决他的问题。总结五、text 格式邮件配置文件怎么修改显示内容。
操作:
1.首先你看上面的《总结二》打开那个目录下的BUG_TEXT.xsl
2.查找<xsl:apply-templates select="item_field[@dbid='BG_BUG_ID'][@IsActive='Y']"/>
你就会发现有很多条类似的内容
3.如果你要修改是否显示就把[@IsActive='Y'] 中的Y 改为N 。
4.如果你要修改显示的顺序,就移动整行的排列顺序,在第一行的邮件中就是第一个显示。
5.如果你需要增加显示的内容,就复制一行<xsl:apply-templates select="item_field[@dbid='BG_BUG_ID'][@IsActive='Y']"/> 把BG_BUG_ID 改为TD 数据库中使用的字段。
6.需要注意的是,最后一行的含义是比较多点,你可以搜索搜索[@dbid!='BG_BUG_ID'] 带有这个的就是我说的最后一样配置显示,这行的代表是,除了BG_BUG_ID 等(有好多个)是否显示。
7.如果你需要修改历史记录,让间隔更小点,你可以搜索Histor y<br/> 看到没有,历史记录里面的配置有很多个<br/> 你删除多余的,在New Value 那留一个<br/> 就可以让发送的邮件中历史记录中的换行减少,但是又不能没有一个<br/> 那样显示就太密集了。
说明:HTML格式邮件配置文件里面的也是异曲同工。
作者语:这个总结我感觉写的不是哪么浅显易懂,当然如果有需要解释的地方可以发送邮件给我onlonely@163.com。但是有一定配置TD基础的人就容易看懂了。不过最后总算发现发送的邮件比较自定义了,还是比较高兴的。
标题搜索
我的存档
数据统计
- 访问量: 9697
- 日志数: 9
- 图片数: 1
- 建立时间: 2008-04-28
- 更新时间: 2010-05-28