背景:
我本人不愿意写测试报告,但领导规定每个迭代后都需要发一份测试报告,让我比较难受(不是不会写,主要是测试报告内容比较详实,几乎没有人会细看),没有人看就=流于形式
那么,有没有一种方法,既满足了减轻测试人员的压力,又完成了目标,同时还能整合出一个一目了然的且具有参考意义的测试报告呢?
过程:
首先,因为我们公司使用jira作为迭代管理工具,我想了一下,如果能把jira数据拉下来就好了,于是我去查了一下,发现python是可以对jira进行操作的,那么就可以开整了
我的思路是这样的
1、利用python操作jira获取到我们的预期的数据
2、对数据进行处理,是数据满足我们生成图表的要求
3、使用pychart将处理好的数据变成测试报告的html
4、集成到jenkins上并接受他人的传参,做成千人千面,大家都可以使用的工具
先安装jira和pyecharts
在cmd中运行以下命令
pip install pyecharts
pip install jira
然后新建一个py文件,定义一些操作jira的方法,解析数据的方法,并返回满足生产图片的数据
operationJira.py
from jira import JIRA
class jiraOperation():
def loginJira(server,username,password):
jira = JIRA(server = server,basic_auth =(username,password))
return jira
#登录jira并返回一个jira的实例
def serchissues(jira,jql,max_results = 50000,fields='components,summary,customfield_10903,labels'):
"""serchiuess
@:param jql:JQL,str
@:param max_results: max results,int,default 100
"""
try:
issues = jira.search_issues(jql,fields=fields, maxResults=max_results)
#默认返回指定的三个字段,且最大结果行为50000
return issues
except Exception as e:
print(e)
#根据jql查询jira的信息
def analytical(jira_result):
summarys = {}
components = {}
custom_fields = {}
reason_bugs = {}
for x in jira_result:
a = str(x.fields.summary) #概要
if x.fields.components == []:
b = 'None'
else:
b = str(x.fields.components[0]) #模块 返回的是一个jira的components对象 需要转成str