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

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

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

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

5Qqk \0j5DLQ4T0

~ j*rs~w/P0QualityCenter自带的邮件发送配置功能实在是不好用:51Testing软件测试网S-z^i0\?)S j
1)邮件发送标题不够直观,不能明确缺陷处理阶段
)c@I|3GYSf3AG lx02)邮件发送延时现象及其严重,甚至有时候会丢失51Testing软件测试网p(d{/A$q

N2RbD"w#u;cM6i0鉴于以上两个原因,特意在后台重写了邮件通知功能,新建了两个方法
`%[S!h%y~.f01)GetInfo
#\$g9G {(?0  负责查找需要发送责任人的邮件地址
/ea6N|;?#yYo02)SendMail51Testing软件测试网(D*C!AZovGm7UV
  调用GetInfo方法,并利用BugFactory对象获取Bug的具体信息,并发送邮件51Testing软件测试网i_$ERGyi
3)完成后在Defects_Bug_AfterPost过程中调用SendMail即可

B)[D(x2L1o,B1^n051Testing软件测试网_;~iB x^

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

dz8mO7i(T6tm051Testing软件测试网8NW6` S5\ H8_Ueh

代码:

.s\8D{c0

-e9rg"U0Vx*a8W;O4P0Function GetInfo(User,Psw,DSource,DBase,SqlStr)
2`~ LBA4lF'A2Gy0C0         'Dim rs,conn,sqlstr,strcon51Testing软件测试网5mu!k TyYxx[
         StrCon = "Provider=sqloledb;User ID="&User &_51Testing软件测试网lr o9q*S |6e:TG
             ";Password="&Psw &_
!} x0oE$?}~X0             ";Data source="&DSource &_51Testing软件测试网*Zy.E9L3x7?;o
             ";DATABASE="&DBase

O!RW(a'c$mOy051Testing软件测试网;q6](tV!h

         Set Conn = createobject("adodb.connection")51Testing软件测试网:Gb1t _-j9H7Y,B8C4_
         Conn.open StrCon

o [}}3fz0

u8N} K9h*pNV0         Set Rs=createobject("adodb.recordset")
|"?*TF{&X4Y0         Rs.open SqlStr,Conn,1,151Testing软件测试网n:JaPh-]"? \/Y:?3Z i;I6k

5h's5@s MR0         If NOT(Rs.BOF = True And Rs.EOF = True) Then51Testing软件测试网5N/k5opA%\7xbX*[
           'RsCount = Rs.Fields.Count51Testing软件测试网 T'{(o7c0kb#b
           'For i = 0 To RsCount - 151Testing软件测试网(\(F3C)G~oZ%Z)}H9PG
             Info = Rs.Fields(0).value51Testing软件测试网6J+L9f;oh%P
           'Next51Testing软件测试网2c#Z6Y^zK-e x
         End If51Testing软件测试网hf'v,O9h&G c!U!@3@

51Testing软件测试网W`cSYzqY

         GetInfo = Info51Testing软件测试网-s)cf%X P

51Testing软件测试网.~j&stDM'k p ~5U

         set Rs = Nothing
)]:L;gW0`.W ^6O0         Set Conn = Nothing
dp*Y2CK0End Function

bm8w zX"E6\C$` A0

u {7xv6q3\0Sub SendMail()51Testing软件测试网-@ F"|/}v;V
         On Error Resume Next51Testing软件测试网JHv/rP M??"DB/b*L"n

%l5B)O]-?0f)[)a0         UserId = "xxx"51Testing软件测试网Q G)l5QShHn
         PWord = "xxx"
a `5aqx0         DataSource = "xxx"51Testing软件测试网-HFe6l sF/L]
         DataBase = "qcsiteadmin_db"

k5fA7h9dA#L*w._I*\/r051Testing软件测试网2LP#j5ir n

         Id = Bug_Fields("BG_BUG_ID").Value

(u|a*En(| nP0

} V%JN(DGm!}0         Set ōbjBugFactory = TDConnection.BugFactory51Testing软件测试网a+^(M;@N,s+E L
         'set BugFilter = ObjBugFactory.Filter51Testing软件测试网BF%R|(PXp;f

6\"\"I.ZZy4P0R's*p-u%N{0         'BugFilter.Filter("BG_BUG_ID") = Id
lN8} ~$UxLN7S3k0         set ōbjBug = ObjBugFactory.Item(Id)

I-ifg u{#E&C9P_0

Z!t J/DUd0         'set BugList = BugFilter.NewList

7d!cck6r0_051Testing软件测试网z7eY|C V^F Py

         'For each ObjBug in BugList51Testing软件测试网ch9SI N T2Bx4I2d

|q)nh*V&|F,_0         '获取项目
4f"A z4rH&Of _ci sd0         PojName = TDConnection.ProjectName51Testing软件测试网(\ m-wj ngTj?

0Kos s Vj5}S\!w0         StrComment = ""

'gL~#O(N0

z.I8uA8K]5Xp }!S0         '已提交
9f iB%Tf0         If ((Bug_Fields("BG_USER_01").Value = "已提交") And _
/zTQc"mh0            (Bug_Fields("BG_RESPONSIBLE").IsModified))Then

}b#C(}~ uhU{j3[0

+D5h9pdO0U)R/` yp0            '设置邮件接收人和标题
*r"S"qu"J xW?0            UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网3z!M+qN g9O

51Testing软件测试网&SizF L3H

            'msgbox UName

.I3n(gY"o9F2Sw%K!q051Testing软件测试网Q$v5SkP t6ET

            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"51Testing软件测试网5C+J4U#_fs5sX

o2Y[bn/` E0            'msgbox Sql51Testing软件测试网rO3v@ R| Z

Dcf"f]y*wZ!Z0            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网8`"wEXi!a R2~

51Testing软件测试网!M{)D+f(y7P

            'Msgbox StrTo

4[4s ~4p.J0

:Hv;qn oe5V0            StrCc = ""
^#hW? Z#j'YV)B6q6y0            StrSubject = PojName&":您有新分配的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网 gh)Jn.VRZ
                         ",请及时修改!"

w2n jo Q051Testing软件测试网Q]DEZb]0z

            '发送邮件
4w];V5S/rY"B0            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

9gh8}#F3b'K }[D0

+j$O9]fDHg2@){0         End If

1uMzX6DL(v0

)Mp/f*oJ)V0         '未修复-修改状态未更改责任人
4CZ|[5U0         If ((Bug_Fields("BG_USER_01").IsModified) And _
S)[jK0O3^(~vH1iC0             (Bug_Fields("BG_USER_01").Value = "未修复"))Then

+D}RL i051Testing软件测试网.M:i9whu

            '设置邮件接收人和标题51Testing软件测试网bb}4U yw7sO
            UName = ObjBug.Field("BG_RESPONSIBLE")

h/h"I{v u/l1]4In051Testing软件测试网/K!W&sP2d

            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"51Testing软件测试网PY;LC kH1}c

51Testing软件测试网 {8bh!S,W1U(uf

            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网7`"} ]]0qX*t8C_

51Testing软件测试网8{{uofX"Bm

            StrCc = ""51Testing软件测试网?'w o l3v~M5b3k
            StrSubject = PojName&":您修改的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网` S}$v,z/p9@
                         "验证未通过!"51Testing软件测试网|t$l,qP'} Z

51Testing软件测试网*cy6j@C,j9^

            '发送邮件51Testing软件测试网)`u#~UKFl%M4p+_
            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment51Testing软件测试网WVGyr3e

51Testing软件测试网 \5e1A;An

         End If51Testing软件测试网"N8bW2u']9V*m]H

{'vqqZY8F0         '未修复-未改状态但更改责任人51Testing软件测试网,Z'A v;\#o9o&{X o
         If ((Bug_Fields("BG_RESPONSIBLE").IsModified) And _
~ J&_T3^ i1x'r`0             (Bug_Fields("BG_USER_01").Value = "未修复"))Then51Testing软件测试网`j _0W/ZO Xn`

xo7|eu)aB9`0            '设置邮件接收人和标题
Ap:~V3P`8zg0            UName = ObjBug.Field("BG_RESPONSIBLE")51Testing软件测试网` BvW;H[y

51Testing软件测试网l7Z8?j_4g

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

`D SF5_T6R0

t8?~$KC0            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)

,N/e?b ?J0

/P&`B0{)|z-yO.\6P0            StrCc = ""51Testing软件测试网 Y.r&LT9V%H4~
            StrSubject = PojName&":您有新分配的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网 us6po7tu&d:W Jj O
                         ",请及时修改!"

,s+G&J6MKR\2Q051Testing软件测试网8RwmVQMy

            '发送邮件51Testing软件测试网nMLya%gQDp
            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

+_\ {sZ0

C$^4I*~ F"J KS0         End If51Testing软件测试网#`.p5b(y}.u9d`

51Testing软件测试网 W#ZZ:};lMcdEp

         '待验证
X0e9`vh`+w}0         If ((Bug_Fields("BG_USER_01").IsModified) And _
E.X}vC$B0             (Bug_Fields("BG_USER_01").Value = "待验证"))Then

Jt5zVM0

:Vr){*Ir#C0            '设置邮件接收人和标题51Testing软件测试网!cv)Snrx
            UName = ObjBug.Field("BG_DETECTED_BY")

Q&sw5dn(M0

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

A*YEN4t6[051Testing软件测试网9xn\L.{(A0RRn

            StrTo = GetInfo(UserId,PWord,DataSource,DataBase,Sql)51Testing软件测试网Eb5oSlXt)SG

6o o7U FG9e_/Ef0            StrCc = ""51Testing软件测试网M*g o?K0f
            StrSubject = PojName&":您提交的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网N]3IUCG d
                         "已修改完成,请及时验证!"51Testing软件测试网Jk8N(L1ISKt8mU/L

51Testing软件测试网,y!vK"V/~Cq

            '发送邮件51Testing软件测试网6Bw0I*O/Ats [y
            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

U1Ie#| b%k"^051Testing软件测试网a*pR)B]D

         End If

\a g~(?!X g O051Testing软件测试网-bX|(U)K)l!jY

         '已驳回51Testing软件测试网,W.vJ0iaC)@8h^
         If ((Bug_Fields("BG_USER_01").IsModified) And _51Testing软件测试网Z)b JGd(]s:~0c-]
             (Bug_Fields("BG_USER_01").Value = "已驳回"))Then51Testing软件测试网c Z'u#X_!Z

51Testing软件测试网3Z;N M4d}H.I y0s~

            '设置邮件接收人和标题51Testing软件测试网P,Lp0U[S'R
            UName = ObjBug.Field("BG_DETECTED_BY")51Testing软件测试网~y4I(]P'l~

`2R&` L!u0            Sql = "select EMAIL from td.USERS where USER_NAME = "&"'"&UName&"'"51Testing软件测试网CA\p0M1A;P

51Testing软件测试网*\-P ifUPR

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

i[ oi8U0

*K0l [8i\,eu[0            StrCc = ""
S.wT4m!m]0            StrSubject = PojName&":您提交的缺陷"&"(ID:"&Id&")"& _51Testing软件测试网 SY[-t]*n
                         "被驳回,请关注!"

I1V^[-s%l7]0

#LQt7K+N C%n+M(U0            '发送邮件51Testing软件测试网 Y'ppfvD]%G
            ObjBug.Mail StrTo, StrCc, TDMAIL_TEXT, StrSubject, StrComment

mP/iB*t(n?q0

6T&C5A/e-kr`Q$\4TK0         End If

jzM8pgC4O1R:a}0

k7~JKF4\s/V0         'Next

B A{ [9\m,I^}|051Testing软件测试网/CY;v5s5O DH

         Set ōbjBug = Nothing
N#J8YO-v0         Set ōbjBugFactory = Nothing

ET)vY@051Testing软件测试网li}W X$Y3I$N

         On Error GoTo 051Testing软件测试网R"B5I0hN#A \U#zE
End Sub51Testing软件测试网Y/dai+t,VY&L/[H

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

vr4ht^(b0

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-03-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

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

RSS订阅

Open Toolbar