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

基于QC的缺陷状态分类自动统计邮件功能

上一篇 / 下一篇  2009-04-15 13:49:50 / 个人分类:QC

版权声明:原创作品,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。

a1DXv{8Q3~0目标:51Testing软件测试网A+DD'BOAE

z%`zli0实现每周末自动对这周所有项目缺陷状态分类统计,了解一周内缺陷的变化情况,统计完成后自动给相关人员发送邮件。51Testing软件测试网4s5X T%HpH

^B,r$l#jhf0只是简单的分类统计,有需要者可以根据自己部门的需求进一步进行扩展

*j!r4C%{m3H0

Ss C/z9z+v-[v%B?U0实现:51Testing软件测试网^e)]1Do

51Testing软件测试网3_G9tGiP:c4U

利用windows的任务管理计划调用vbs执行51Testing软件测试网x jdsj0^B
需要发送多人邮件的话,可用","分离多个邮件地址

2~M3YQ5uM0

4m6~ D%HEqjjEW0局限:

F3P8d@j/u9V6? Q7V Q051Testing软件测试网b,C bGg%d5e _f

目前9.0版本的QC无法支持中文域名和项目名51Testing软件测试网)D3lE#C F0aa5dC7W

51Testing软件测试网] Pt&R }G

51Testing软件测试网(tlVc0g-U2d G+{

51Testing软件测试网!O_'o1I-Wtx.z5x
Flag = IsFriday()51Testing软件测试网E(kxq-~_cDFhA2Q

51Testing软件测试网'Ov B.n?aTL:K

If Flag = True Then
X ])H7^$XR!k-a0 Call ProjectInfo("xxxxx","xxx","xxx","xxx")51Testing软件测试网"\wGWV_A!lib
End If

5LL/Q0t0h^4A6xgv051Testing软件测试网(R+W]+[]X)NM

'获取QC上所有项目,循环统计51Testing软件测试网h3CD.L.S9MiZ
Function ProjectInfo(qcUrl,qcUsername,qcPassword,qcDomain)
Ysa+`)H4M*X$^j xk0 Set Tdc = CreateObject("TDApiOle80.TDConnection.1")51Testing软件测试网(tV7P*uC9Yg
 If Not Tdc.Connected Then
0HH/P1?I@0  Tdc.InitConnectionEx qcUrl
;d4KcFn qU,}0  Tdc.Login qcUsername,qcPassword51Testing软件测试网1S1\,~u_&U5qc:EVL
 Else51Testing软件测试网#l$GQ#B z!Ab6Rn
  Tdc.Disconnect51Testing软件测试网H*eu1C P [-K:K
  Tdc.Logout51Testing软件测试网]4Y#o cvl
  Tdc.ReleaseConnection
0wn2Y6N} r:m'K(L n0  Tdc.Login qcUsername,qcPassword51Testing软件测试网%t4x!I#q7y4hX
 End If51Testing软件测试网0Y._{#J?,vQ
 
,F K lV xTo?0 Message = ""
&A#v4p.GSu%?0 Msg = ""51Testing软件测试网h|fS}$g3Oi
 
$U4Dy+v/C1d B0 For Each project In tdc.VisibleProjects(qcDomain)51Testing软件测试网*BkRS]6[@5?
  Tdc.Disconnect51Testing软件测试网8Zh-V5nU:x/z yp
  Tdc.Connect qcDomain,project51Testing软件测试网2m ` Eq\(e%g7Tj |
  Set BugFac = tdc.BugFactory51Testing软件测试网Xcm%oH
  Set BugList = BugFac.NewList("")51Testing软件测试网 \%Ul^dW p k
'  MsgBox BugList.count
k*I$u6w!Hr5l'V,Y0  BugCount = 0
c6Q(ve hr-Z,{Y0  ReferCount = 0 '提交
.ru$@4~x)|4Jy#F J0  RejectCount = 0 '拒绝
*[h+K%C*kX2k0  DeployCount = 0 ' 部署
MbKG;D D8TM0  ValidateCount = 0 '验证51Testing软件测试网3`.|)HO'{%Ec7q j`k
  ClosedCount = 0 '关闭51Testing软件测试网u,J6D*Bme9c)V
  ReopenCount = 0 '未修复
^,gLwj0  For Each Bug In BugList51Testing软件测试网Y7}X ~ c)G v h
   BugDate = CDate(Bug.Field("BG_DETECTION_DATE"))  
p*SsP?1C0   CurrentDate = Date
z\ @%U5^3T._0   LastDate = GetLastWeekDate()
w(q,X.t9t?F0   If (BugDate <= CDate(CurrentDate) And BugDate >= CDate(LastDate)) Then
&Z4p3{ayT4gU7E3W#Q0    '缺陷总数
+vg0uD\Zl0    BugCount = BugCount + 151Testing软件测试网V9Xq$R:P
    '已提交总数51Testing软件测试网$eZk8^8~#T.s
    If Bug.Field("BG_USER_01") = "已提交" Then51Testing软件测试网Q WA.sK7IZRI#Q
     ReferCount = ReferCount + 151Testing软件测试网-XYNL#W h9J\u
    End If
"FC3f%D/o\p0    '已驳回总数
Z fDx}0    If Bug.Field("BG_USER_01") = "已驳回" Then
Hq ^ G5NtLpP0     RejectCount = RejectCount + 151Testing软件测试网FDpO{;N1ac
    End If51Testing软件测试网 e By3@ |;P
    '待部署总数51Testing软件测试网p e@],[/~)UMe9V
    If Bug.Field("BG_USER_01") = "待部署" Then51Testing软件测试网h&f1L O2B
     DeployCount = DeployCount + 1
7T|,K Ai0    End If51Testing软件测试网 FMW(W:c9|!\x
    '待验证总数
6}._cg3kN)`0    If Bug.Field("BG_USER_01") = "待验证" Then
7o&t3w(^'p9n0     ValidateCount = ValidateCount + 151Testing软件测试网!^N6VK%Q.I~'O-Py\
    End If
&D[1[6Y(u6m q0    '未修复总数
8Z7@C7z(l:y;k)f0    If Bug.Field("BG_USER_01") = "未修复" Then
/n+I1|hM:T#Lc0     ReopenCount = ReopenCount + 1
Z`ro9er0    End If
8Ua(d5??+yAfB(A0    '已关闭总数51Testing软件测试网ha%w R/st3g
    If Bug.Field("BG_USER_01") = "已关闭" Then
%d V$@.V7bTF0     ClosedCount = ClosedCount + 1
XvD;@\ }0    End If51Testing软件测试网9qd@ Za8R;q|
   End If51Testing软件测试网 b i9qmK]
  Next
LM"A(| z2Ai0  Message = Message + "<p><table width=100 border=""1"" align=""left"">"& VbCrLf &_51Testing软件测试网5sK&zN"d1wys
       "<th colspan=2>"&project&"</th>"& VbCrLf &_51Testing软件测试网t/D:t:g7x
       "<tr><td width=60%>"&"已提交"&"</td><td width=40%>"&ReferCount&"</td></tr>"& VbCrLf &_51Testing软件测试网H'N}{eR$}v
       "<tr><td>"&"已驳回"&"</td><td>"&RejectCount&"</td></tr>"& VbCrLf &_51Testing软件测试网e-c$| ~c1Tl6|SVlR
       "<tr><td>"&"待部署"&"</td><td>"&DeployCount&"</td></tr>"& VbCrLf &_51Testing软件测试网_)K7q\ VPA1p3Z#~
       "<tr><td>"&"待验证"&"</td><td>"&ValidateCount&"</td></tr>"& VbCrLf &_
2K5CKg2yZnB0       "<tr><td>"&"未修复"&"</td><td>"&ReopenCount&"</td></tr>"& VbCrLf &_
#Tnr&d)uS0       "<tr><td>"&"已关闭"&"</td><td>"&ClosedCount&"</td></tr>"& VbCrLf &_
8Q Zk:qd_0cf]0       "</Table></p>"& VbCrLf51Testing软件测试网 S%l;v7p?)^ mR
'   MsgBox Message51Testing软件测试网'jA)OXe ]#? ~7s
  Set BugList = Nothing
4T:hz\ wg0  Set BugFac = Nothing
S&^ v.x.TH'sxO0 Next
-yHbr%a\0k0 Msg = "<html><head><title></title>" &VbCrLf &_51Testing软件测试网^,`2{;W.\2C$fsZ_
   "<style. type='text/css'>"&VbCrLf &_
}ei!y1k0   "td,form,select,input,p,table,.font {font-size: 12px;line-height: 20px}"&VbCrLf &_51Testing软件测试网8Y@)Rp~ P1Ix$I
   "table"&VbCrLf &_
%l"i/K,Zy b'dV0   "{border-collapse: collapse}"&VbCrLf &_
jsD mL;y0   "</style>"&VBCRLF &_
;xBn8tR4DRjV.Nm0   "</head><body>"&Message&"</body></html>"
/j8W0U:Ne0 Call SendMailMessage("xxx","xxx","xxx","xx",msg,"xxx")
jb pU;u+FxM0 Tdc.Disconnect51Testing软件测试网A$GqDEp9i*Ye
 Tdc.Logout51Testing软件测试网Vl7A-B^$O$t
 Tdc.ReleaseConnection
2g4IN:H?B0g0 Set Tdc = Nothing51Testing软件测试网I/u$O;q%Q{E,o;a/K
End Function

;i3CO-vHyw/^051Testing软件测试网l6N1HAp$L

'邮件发送方法
L9L#a~I`7Pwe0Sub SendMailMessage(FromMail,MailPassword,ToMail,MailName,MailMessage,SmtpServer)51Testing软件测试网` {H4I+H }h&gk%_
 FromMailName=Split(FromMail , "@", -1, vbTextCompare)
+K\^yIB0 MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
8l'ME[1n0 Set Email = CreateObject("CDO.Message")
do.Pqo o[ SXeS0 oEmail.From = FromMail '发送邮件地址
v,\;b B?@c.Uq0 oEmail.To = ToMail '送达邮件地址51Testing软件测试网(e$Q%u|Gn*CGI
 '处理中文乱码
hNM`;QL ` ~|0 Set BodyPart = oEmail.BodyPart51Testing软件测试网2aMuR)LC?
 oBodyPart.Charset = "UTF-8"
K K8z+Bi"q&j0 oEmail.Subject = MailName '邮件标题
@;j6I6HRzZ0 oEmail.HTMLBody = MailMessage '邮件正文
TbN,VWfq0 '配置邮件发送51Testing软件测试网d E!UI1q
 With oEmail.Configuration.Fields51Testing软件测试网J!o WGg y+b
  .Item(MS_Space&"sendusing") = 2 '发信端口51Testing软件测试网/zs V~R#@}J uU
  .Item(MS_Space&"smtpserver") = SmtpServer 'SMTP服务器地址51Testing软件测试网D#WVc u2{
  .Item(MS_Space&"smtpserverport") = 25 'SMTP服务器端口51Testing软件测试网Xdw^x3tl V
  .Item(MS_Space&"smtpauthenticate") = 151Testing软件测试网 au`,g}HIE"G
  .Item(MS_Space&"sendusername") = FromMailName(0) '邮件帐号51Testing软件测试网8Hll;Tu!@
  .Item(MS_Space&"sendpassword") = MailPassword
tA7mG-k H0'   .Item(MS_Space&"cdoSendlanguagecode")="UTF-8"51Testing软件测试网:N:|[ U"D-CQ v
  .Update
0BJi;ri0 End With
|BO[-p6rw0 '发送邮件51Testing软件测试网Kp {hG)m8D[0\
 oEmail.Send51Testing软件测试网 O:U,opejX*Ad0B+h
 '释放对象
K7qO}d9j0 Set BodyPart = Nothing
$FL!_}M0 Set Email = Nothing51Testing软件测试网#Lz:` s@ o8v B y&Tn
End Sub

3kFS%Ny%yPtR0

etf l(o \0'判断当前日期是否星期五51Testing软件测试网/Dh`%Ge4}
Function IsFriday()
-|/y D-cS d6b0 CurrentDate = Date51Testing软件测试网-D:mq,G5y&]oW
 Num = Weekday(CurrentDate,2)51Testing软件测试网"H ]"\ Q eK Jy
 If Num = 5 Then51Testing软件测试网m q%x(Z%a Y
  Flag = True51Testing软件测试网,UM`9HO*q
 Else51Testing软件测试网qG'qM1M NL
  Flag = False51Testing软件测试网+F,d+}kv}}
 End If
B mBP7p@e$j8A0 IsFriday = Flag
:fJ-K3YK0End Function

(ypjd]~ {U0

&Eiq$dZ.\0'获取当前日期前一周日期
D[ p9oR l0Function GetLastWeekDate()
sA H X%\9Y{0 CurrentDate = Date51Testing软件测试网?/s6~`:C8V&Q)J
 LastWeekDate = DateAdd("d",-7,CurrentDate)
d q+q:Z Dv0 GetLastWeekDate = LastWeekDate
rYr3}S9cRx0End Function

9i#AKr;rc0
51Testing软件测试网| c EF"M_

51Testing软件测试网"D!~ `;v:l

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

)g'Ye[v0

TAG:

刘沛的测试空间 引用 删除 zte_boy   /   2009-04-22 23:41:48
是的,呵呵
引用 删除 Jane.Li   /   2009-04-22 17:03:18
这个是VBS的么?
 

评分:0

我来说两句

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar