wower1985 发表于 2011-2-11 13:20:14

QC自动发送邮件的实现方法 注意是使用工作流方式哦

本帖最后由 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 ErrorGoto 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

cebio 发表于 2011-2-12 12:06:57

看了,鼓励一下:)

archonwang 发表于 2011-2-12 14:13:11

补充下基本的配置就比较完整了。谢谢。

singlejeff 发表于 2011-3-16 11:30:16

强顶,虽然现在我没有装smtp协议,但是先学习

wuxiao200711 发表于 2012-7-5 16:17:21

高手非常感谢!
页: [1]
查看完整版本: QC自动发送邮件的实现方法 注意是使用工作流方式哦