|
本帖最后由 wower1985 于 2011-2-14 10:07 编辑
一、首先,使用QC管理员身份登录到QC,进入到自定义管理页面,在脚本编辑器缺陷管理模块中,编写以下脚本
sub SendDefect(iObjectId,strTo,StrCc,strSubject,strComment )
On Error Resume Next
Dim objBugFactory,objBug
Set objBugFactory=TDConnection.BugFactory
Set objBug=objBugFactory.Item(iObjectId)
objBug.Mail strTo,strCc,2,strSubject,strComment
Set objBug=Nothing '清空
Set objBugFactory=Nothing
PrintError "SendDefect"
on Error Goto 0
End Sub
这个函数 SendDefect(iObjectId,strTo,StrCc,strSubject,strComment ) 主要是完成发送邮件等功能,其中iObjectId 为缺陷ID,strTo为邮件接收人,strSubject为邮件标题, strComment 为邮件注释。
二、编写我们需要的触发条件脚本。例如:当缺陷状态变为“重新打开”时,发送邮件。此处也写成一个函数。
sub send_reopen(project,tomail) '发送reope缺陷
if Bug_Fields.Field("BG_STATUS").IsModified and Bug_Fields.Field("BG_STATUS").value="重新打开" then
bugid=Bug_Fields("BG_BUG_ID").Value
StrCc =""
title="项目"& project &":缺陷"& bugid & "reopen!请查阅"
to_mail=tomail&"@********.com" '收件人
call SendDefect(bugid,to_mail,StrCc,title,"发件人注释")
msgbox "发送完毕"
end if
end sub
三、到此基本快完成我们的目的了,现在只需要在QC缺陷脚本管理模块下的 Bug_AfterPost 过程下调用我们编写的 send_reopen(project,tomail) 函数就可以了
例如:
Sub Bug_AfterPost
On Error Resume Next
call send_high_reopen("项目名称","收件人名称")
On Error GoTo 0
End Sub
以上Bug_AfterPost 过程的意思是当缺陷提交到服务器之后,然后开始执行它里面的代码。
上面是当缺陷状态变为重新打开后自动发送邮件给邮件接收人,我们可用类似的方法编写按其他条件发送邮件的脚本。。。。。。。
注意:能发送邮件的前提是你的QC服务器能发送出邮件,即自动发送邮件的功能是好的,你要没配置QC发送邮件那我也没招。。关于配置的东西有帖子已经说的很到位了。
配置请 转到这位高手的帖子中 http://bbs.51testing.com/thread-92490-1-1.html |
|