Python如何统计Jira的bug并发送邮件功能(BUG,jira,python,开发技术)

时间:2024-04-27 18:50:09 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Python如何统计Jira的bug并发送邮件功能

1.首先在pycharm上使用pip安装

pipinstallhtml-tablepipinstalljira

2.初始化发件人邮箱,账号,密码

#发件人邮箱账号my_sender='username@xxx.com.cn'#user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功my_pass='xxxxx'#收件人邮箱账号my_users=['username@xxx.com.cn']

3.登录Jira

classJiraTool:#初始化def__init__(self):self.server='http://ip:5500'//连接Jira的Ip地址self.basic_auth=('username','password')//连接Jira的账户和密码self.jiraClinet=None

4.登录Jira

deflogin(self):self.jiraClinet=JIRA(server=self.server,basic_auth=self.basic_auth)ifself.jiraClinet!=None:print("登录成功!")returnTrueelse:returnFalse

5.获取Jira问题列表

defget_issue_list_by_jql(self,jql):issue_list=[]issue_key_list=self.jiraClinet.search_issues(jql_str=jql,startAt=0,maxResults=1000)//Jira默认统计50条,maxResults设置大小forkey_listinissue_key_list:issue=self.jiraClinet.issue(key_list.key)issue_list.append(issue)#print(issue.key)#关键字#print(issue.fields.summary)#bug描述#print(issue.fields.status)bug状态#print(issue.fields.assignee)#经办人#print(issue.fields.components[0].name)#模块#print(issue.fields.priority)#优先级returnissue_list

6.创建一个表格

defgen_new_bug_caption_str(issue_list):dict={}forissueinissue_list:dict[issue.fields.status.name]=dict.get(issue.fields.status.name,0)+1#dict[issue.key.split('-')[0]]=dict.get(issue.key.split('-')[0],0)+1caption_str='近一周共计新增bug'+str(len(issue_list))+'个。已关闭:'+str(dict.get('已关闭'))+'个。已解决待关闭:'+str(dict.get('已解决'))+'个。待处理:'+str(dict.get('待处理'))+'个'#print(caption_str)returncaption_str

7.生成html

#标题样式#table.caption.set_style({'font-size':'15px','align':'left'})table.caption.set_style({'font-size':'15px'})#表格样式,即<table>标签样式table.set_style({'border-collapse':'collapse','word-break':'keep-all','white-space':'nowrap','font-size':'14px'})#设置每个单元格的样式,主要是规定边框样式:table.set_cell_style({'border-color':'#000','border-width':'1px','border-style':'solid','padding':'5px',})#设置表头单元格样式,规定颜色,字体大小,以及填充大小:#表头样式table.set_header_row_style({'color':'#fff','background-color':'#696969','font-size':'18px',})#覆盖表单单元格字体样式table.set_header_cell_style({'padding':'15px',})#遍历数据行,根据不同状态设置背景颜色forrowintable.iter_data_rows():ifrow[1].valuein"待处理":row[1].set_style({'background-color':'#FFB6C1',})ifrow[1].valuein"已解决":row[1].set_style({'background-color':'#E1FFFF',})ifrow[1].valuein"已关闭":row[1].set_style({'background-color':'#90EE99',})ifrow[1].valuein"重新打开":row[1].set_style({'background-color':'#DC143C',})ifrow[1].valuein"开发中":row[1].set_style({'background-color':'#f7d7a7',})#生成HTML文本:html=table.to_html()#print(html)returnhtml

8.发送邮件

defsendmail(html):ret=Truetry:#邮件内容msg=MIMEText(html,'html','utf-8')#括号里的对应发件人邮箱昵称、发件人邮箱账号msg['From']=formataddr(["张三",my_sender])#括号里的对应收件人邮箱昵称、收件人邮箱账号#msg['To']=formataddr(["李四",my_user])#邮件的主题msg['Subject']="bug情况统计"server=smtplib.SMTP_SSL("smtp.exmail.qq.com",465)#登录服务器,括号中对应的是发件人邮箱账号、邮箱密码server.login(my_sender,my_pass)#发送邮件,括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件server.sendmail(my_sender,my_users,msg.as_string())#关闭连接server.quit()#如果try中的语句没有执行,则会执行下面的ret=FalseexceptException:ret=Falsereturnret

9.调试

new_bug_jql="projectin(AAA,BBB,CCC)ANDissuetypein(Bug,缺陷)ANDcreated>=-1wORDERBYcomponentASC,assigneeASC,priorityDESC,updatedDESC"old_bug_jql="projectin(AAA,BBB,CCC)ANDissuetypein(Bug,缺陷)ANDstatusin(待处理,开发中,Reopened)ANDcreated<=-1wORDERBYcomponentASC,assigneeASC,priorityDESC,updatedDESC"jiraTool=JiraTool()jiraTool.login()new_issue_list=jiraTool.get_issue_list_by_jql(new_bug_jql)new_bug_caption_str=gen_new_bug_caption_str(new_issue_list)new_bug_html=gen_html_table(new_issue_list,new_bug_caption_str)#print(new_bug_html)old_issue_list=jiraTool.get_issue_list_by_jql(old_bug_jql)old_bug_html=gen_html_table(old_issue_list,"超过一周未关闭bug")eamil_html=(new_bug_html+"<br/><br/><br/>"+old_bug_html).replace("&gt;",">").replace("&quot;","\"").replace("&lt;","<")#print(eamil_html)ret=sendmail(eamil_html)ifret:print("邮件发送成功")else:print("邮件发送失败")
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python如何统计Jira的bug并发送邮件功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:TypeScript环境搭建的实现步骤是什么下一篇:

22 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18