致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论

QC实例-后台邮件通知功能代码

上一篇 / 下一篇  2008-11-25 17:28:28 / 个人分类:QC

转载请保留:本文出自zte_boy的51Testing软件测试博客:http://www.51testing.com/?161787

C1oDY#fz051Testing软件测试网HQ!~AmJN k/K

QualityCenter自带的邮件发送配置功能实在是不好用:51Testing软件测试网Wo%AF ^+N&ZF"^
1)邮件发送标题不够直观,不能明确缺陷处理阶段51Testing软件测试网 Z^ Oro
2)邮件发送延时现象及其严重,甚至有时候会丢失

)F[ \H T)W0

DJ o/O Fj*C6G`0鉴于以上两个原因,特意在后台重写了邮件通知功能,新建了两个方法
'a3IL/sEGm01)GetInfo51Testing软件测试网d-yrvxO3LSl
  负责查找需要发送责任人的邮件地址
&m!z&B3q%I2C02)SendMail
~/{0i zCf&^6e+W0  调用GetInfo方法,并利用BugFactory对象获取Bug的具体信息,并发送邮件51Testing软件测试网(A*]JCq(~Z+S~6\
3)完成后在Defects_Bug_AfterPost过程中调用SendMail即可

m/d0O[2K0

r"Ct*D.nh0在后台实现的邮件通知功能效率明显高于配置,10S内就能接收到通知邮件,且标题一目了然

!a&\1P\0G0

!p M:E-r,GK7^*@0代码:51Testing软件测试网{A8W6Cp5q$L

~Q%Q:b]W J8m0Function GetInfo(User,Psw,DSource,DBase,SqlStr)
.PC%U)X9U T;l2g0         'Dim rs,conn,sqlstr,strcon51Testing软件测试网!z1^ w E;B
         StrCon = "Provider=sqloledb;User ID="&User &_
!_8B Aq^4H0             ";Password="&Psw &_
(k N R.j&U:LN{u.l-y/a0             ";Data source="&DSource &_
T8m6^;h ZsV0             ";DATABASE="&DBase

\ l1v.iO`0

*|/B @5[y0` s3z!h6q0         Set Conn = createobject("adodb.connection")51Testing软件测试网Bw(`5m.P4`
         Conn.open StrCon51Testing软件测试网'Qh!}L'X`,S4{U

51Testing软件测试网?\eu y[8p

         Set Rs=createobject("adodb.recordset")
4H2?Z%d7b0         Rs.open SqlStr,Conn,1,151Testing软件测试网)G oTO%TZ wz*G c g

XL]F/[Q;Z0         If NOT(Rs.BOF = True And Rs.EOF = True) Then51Testing软件测试网(K AS!~~J(|7g%RG
           'RsCount = Rs.Fields.Count51Testing软件测试网!v f;Kj;bkj,S
           'For i = 0 To RsCount - 1
(R7q|vh0             Info = Rs.Fields(0).value
f-t ^:o.n0           'Next51Testing软件测试网fE R3B Y]7y
         End If51Testing软件测试网!a.j)p'|+M9X-E3q8^!U

51Testing软件测试网z"C \ C2oOM

         GetInfo = Info

)`%c k,W/i0

.],F`9o@:EOsJ0         set Rs = Nothing51Testing软件测试网)eO] ]!m\
         Set Conn = Nothing51Testing软件测试网5a4nIPBZ%ui
End Function

CL @dI051Testing软件测试网zeU.N/]-N.l FKF

Sub SendMail()51Testing软件测试网c%KMn%[b)B |^%i ]
         On Error Resume Next

ho7S om051Testing软件测试网M(C`Z;]a4fs(s

         UserId = "xxx"51Testing软件测试网R,o+Q-i6`oqs a
         PWord = "xxx"
l }8X{,w5}%E0         DataSource = "xxx"
-Y3e OyR2N0         DataBase = "qcsiteadmin_db"

H-[,fhNE6RT0

-o[m%VzoOE4NZ0         Id = Bug_Fields("BG_BUG_ID").Value51Testing软件测试网'VT,f;c KS\

51Testing软件测试网/N5xk.{b

         Set ōbjBugFactory = TDConnection.BugFactory51Testing软件测试网!T"O:K} A}8M6Zh*{
         'set BugFilter = ObjBugFactory.Filter51Testing软件测试网@+ah zi+oU

1f|EB Cs1RZ o0         'BugFilter.Filter("BG_BUG_ID") = Id51Testing软件测试网&ct/h d(GO9B k)Ie
         set ōbjBug = ObjBugFactory.Item(Id)51Testing软件测试网s'fy)ZR)k/Z

51Testing软件测试网)xnK&{7?V!K6b'J.A

         'set BugList = BugFilter.NewList

']{Q1K ^?x051Testing软件测试网x7}$WnL fwx

         'For each ObjBug in BugList51Testing软件测试网|T ]2\y,y;J kL&@

51Testing软件测试网Hoc4\ D@o

         '获取项目
I-}/Z.Mc'lF0         PojName = TDConnection.ProjectName

ZHG.Nm051Testing软件测试网(sPY7iJ4^7g5mX }

         StrComment = ""

7z7X&^]LL051Testing软件测试网.r1f O$o K R7Y7iv

         '已提交51Testing软件测试网Fe o9swK`K
         If ((Bug_Fields("BG_USER_01").Value = "已提交") And _
mt {w.{6Z0            (Bug_Fields("BG_RESPONSIBLE").IsModified))Then51Testing软件测试网zS i;[Gf"EN-H

gW_)SS!P0            '设置邮件接收人和标题
?T*Q!L.y2Z#h0            UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网{ B;s f SI+`

51Testing软件测试网 lv]3JBsUz8g

            'msgbox UName

9T*U|N'Bg&X%i2O7V051Testing软件测试网U!H1M2@ojb

            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"51Testing软件测试网.C,?Z%uP9JH

!k Pi*A G0            'msgbox Sql

4@x6GywoVb051Testing软件测试网)O Sl7tN(g9C

            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)

b}#fM@:g@\is051Testing软件测试网$em-j2FV w.g(o

            'Msgbox StrTo51Testing软件测试网x6[*q zmJ4G T

G)e6]rvkT6zL*i Z \n0            StrCc = ""
T$}7rI+g,l0\"s*}0            StrSubject = PojName&":您有新分配的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网0? h7m3bL W!{9E
                         ",请及时修改!"

1w|$kH*h&{&_f,jL0

`MVy3u7r)[0            '发送邮件
#tVqO9sm0            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment51Testing软件测试网8]-]3s?"fL8rl

.c#}Av0q.N.E#}$w5L0         End If51Testing软件测试网k7N _opE!R

51Testing软件测试网C5my v"|#pb/s[

         '未修复-修改状态未更改责任人51Testing软件测试网+^.DulD8v1a&@j
         If ((Bug_Fields("BG_USER_01").IsModified) And _51Testing软件测试网eJH4vk+]O
             (Bug_Fields("BG_USER_01").Value = "未修复"))Then

R/HT2}/f&y9};Xq051Testing软件测试网.N:i q:FAQMZ3@

            '设置邮件接收人和标题
h2mJJ3hC0            UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网8\m(}w8j\1q

51Testing软件测试网7G l&R/\D6?1qL XN(a

            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"

/cyqG|0

'F??9J$]"|)X4~)T0            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网Q3@1v;Gl R;P

51Testing软件测试网3]0kqzb)|$kk:z)K!t3v

            StrCc = ""
aH$A%x{z%Awo0            StrSubject = PojName&":您修改的缺陷"&"(ID:"&Id&")"& _
9B1oGAR0                         "验证未通过!"

r^Zi^5Pyg4^051Testing软件测试网*xTR@"L ds

            '发送邮件
:b2PQ JfbYY0            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

~Y7DeVC p0

F$uH R.?1qc9r,W0         End If51Testing软件测试网+Q{ q} }1m

n3s8[ R:D\g0         '未修复-未改状态但更改责任人51Testing软件测试网} ?3V t f
         If ((Bug_Fields("BG_RESPONSIBLE").IsModified) And _
O Rw!]}]|\0             (Bug_Fields("BG_USER_01").Value = "未修复"))Then

L*woN S gqE |W0

P pP(HK ~0            '设置邮件接收人和标题
Uc~^(T YK c1? o"Ay0            UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网iw!E%QQYt

51Testing软件测试网EKC Inj QJ){#_

            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"

g5n1C*l$j;]051Testing软件测试网hyF RAAE

            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网eS'LW Y2|`)dvz

51Testing软件测试网*f `5LN N-qj

            StrCc = ""
Mz&`6a#n,X6j3V g/jK0            StrSubject = PojName&":您有新分配的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网7Iv(RoTnN?aY
                         ",请及时修改!"51Testing软件测试网_pMZL$f2_ c

51Testing软件测试网r;@&k4C v-r:_6T

            '发送邮件51Testing软件测试网*{A%c0r[:|b
            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

D7ti@XB6q.l051Testing软件测试网_ DJs\8l

         End If51Testing软件测试网#z*Q-S3RW!Jr7a-K&Y

51Testing软件测试网q"i7w2R@

         '待验证51Testing软件测试网&cw{_4b GG V BpO
         If ((Bug_Fields("BG_USER_01").IsModified) And _
*^Z5B]4Q)\Ta7wJ0             (Bug_Fields("BG_USER_01").Value = "待验证"))Then

G!Q? dlN+\0

'JQ {\+[(B"Z0            '设置邮件接收人和标题
BdJdMvFJs0            UName = ObjBug.Field("BG_DETECTED_BY")51Testing软件测试网3]8w|C8X T;W)V5H9K!n

evCh8p0            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"

9Y)w6bx8QMz8qdU051Testing软件测试网\5Vd*wh7U}+~*F%v

            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网C(lVt"O],W

51Testing软件测试网5j5_VA+`n

            StrCc = ""51Testing软件测试网8h"c5R7Q$KA n,e
            StrSubject = PojName&":您提交的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网Oa/c0m Gi9b
                         "已修改完成,请及时验证!"51Testing软件测试网j Ut5D [G_3h7T

51Testing软件测试网8u*mK@ }1P4o

            '发送邮件
2s\q;i(Y s9pI^:_} X0            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

%~)LQoQ(~?W6f+F0

\kV.|i-}5D/c0         End If51Testing软件测试网g5a j/xq+{j

51Testing软件测试网H%Ht(Q(m7nn.C2Otu

         '已驳回51Testing软件测试网'[+~D:mO Ph
         If ((Bug_Fields("BG_USER_01").IsModified) And _
fb/c'Qr5pr9WA0             (Bug_Fields("BG_USER_01").Value = "已驳回"))Then

NiE g BBd{K:t*R051Testing软件测试网a FD]g`8}

            '设置邮件接收人和标题51Testing软件测试网 ?+D;]N h1I#n
            UName = ObjBug.Field("BG_DETECTED_BY")

;Wp*I zHh0

y:\k+f(? tRi+mZ+K0            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"51Testing软件测试网C g9h6o9e$N Q

'Z"A8C4?2g Yt0            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)

C!n;k)Iy U0

:F H6Rs1}&V2C |;?A#ij0            StrCc = ""51Testing软件测试网d$D Q6gSOxmc
            StrSubject = PojName&":您提交的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网$W by|g^%[iA2q
                         "被驳回,请关注!"51Testing软件测试网 Sfc@&]!C/`

'~c?4YGa!v0            '发送邮件
I_JLP0            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

ab!II L-yO*[051Testing软件测试网PU+mQ2NERc%V6_$Y

         End If

9Sl;ot#qN5dN051Testing软件测试网,O:BGDU5S/`

         'Next51Testing软件测试网a0B$u0q8} k/` _/w \

51Testing软件测试网J2^ m^8|j

         Set ōbjBug = Nothing
3j VN)Y7[0         Set ōbjBugFactory = Nothing

&AL_X)n)P"a`0

Eo a-VA4s^0         On Error GoTo 0
W3V6jD^(Jdy0End Sub51Testing软件测试网 Gm q-L@'}%E

转载请保留:本文出自zte_boy的51Testing软件测试博客:http://www.51testing.com/?16178751Testing软件测试网/n&rs W5P


TAG: QC

引用 删除 thomas0728   /   2014-03-07 14:59:47
请教一下:
如果你的defect 有attachment 文件时,你的mail 如何加入文件,据我所知,你把SendMail() 放在afterpost 里,你是存取不到attachment 的资料,不知你有何作法
谢谢
ps:我的 mail:thomas0728@gmail.com
萧萧枫林的个人空间 引用 删除 onlonely   /   2009-02-10 09:08:59
关键处的代码注释太少,很难根据你的代码来修改和优化。
1honglong1的个人空间 引用 删除 1honglong1   /   2009-02-10 08:50:31
1
UserId = "xxx"
         PWord = "xxx"
         DataSource = "xxx"这xxx分别代表什么?
mystudy365cn的个人空间 引用 删除 mystudy365cn   /   2009-01-16 23:07:36
我最近刚刚开了个知识店,没有花1分钱投资,直接注册后就开通了,还赠送了5个积分,写日志、投稿都能赚钱,我的学习笔记也能卖钱,不到一个月时间,用业余时间居然赚了将近2000块钱,请您到我的知识店看看吧,我的知识店地址是:http://cmmi3.study365.cn/ 如果您也想开一个和我一样的知识店,请在此注册:http://www.study365.cn/reg_cmmi3.html
jefeelee的个人空间 引用 删除 jefeelee   /   2008-12-09 09:42:03
麻烦楼主也帮我看看,先谢了
http://bbs.51testing.com/thread-134864-1-1.html
Snail's Home 引用 删除 FLY000   /   2008-12-02 20:27:56
能帮我看个问题吗?
http://bbs.51testing.com/thread-134254-1-1.html
 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 91107
  • 日志数: 79
  • 图片数: 1
  • 建立时间: 2008-05-18
  • 更新时间: 2009-06-04

RSS订阅

Open Toolbar