使用场景
我们有个基于jenkens的 CI,每天都会测试很多太不同的服务器,产生很多的数据,收到很多邮件,情况是数据太分散,还需要人为的花费很多时间去分析处理,由此产生的数据集中化,分析处理后,按需报告的系统。
报告结果
下面是按照我们的需求对每个测试case的分析结果部分展示
这个文件是使用pandas处理生成的,每天相关人员都会收到一个邮件附件是上面的报告文件,根据需求把各项数据进行处理。
技术实现
pandas
pandas 做excel文件的统计,分析,再组织的工作。
all_data = pd.ExcelFile(final_file)
datacase = all_data.parse('daecaseinfo')
restful api github/jira/bickbucket/jenkens/testrail
从jira上抓取issue的owner , status
从jenkens 上抓取CI 原始测试数据
从testrail 上抓取case的描述,状态信息
docker & crontab
在一个稳定server上面创建一个容器,把写好的程序放进去,这里建议把文件设置成共享模式,然后再docker里面启动
crontab 服务,定时执行
# run test result analysis everyday 10:00
00 10 * * * echo `date` > /tmp/testresult.txt && /usr/local/bin/python /share/utilities/testresult_analysis.py >t.txt 2>&1
# send result email everyday 10:30
30 10 * * * echo `date` > /tmp/testemail.txt && /usr/local/bin/python /share/utilities/send_email.py >> /tmp/test.txt
这样每天就可以收到一个集中式的分析报告