Python如何统计Jira的bug并发送邮件功能
导读:本文共3180.5字符,通常情况下阅读需要11分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.首先在pycharm上使用pip安装pipinstallhtml-tablepipinstalljira2.初始化发件人邮箱,账号,密码#发件人邮箱账号my_sender='username@xxx.com.cn'#user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。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(">",">").replace(""","\"").replace("<","<")#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并发送邮件功能的详细内容,希望对您有所帮助,信息来源于网络。