自动化CI分析报告系统

使用场景

我们有个基于jenkens的 CI,每天都会测试很多太不同的服务器,产生很多的数据,收到很多邮件,情况是数据太分散,还需要人为的花费很多时间去分析处理,由此产生的数据集中化,分析处理后,按需报告的系统。

报告结果

下面是按照我们的需求对每个测试case的分析结果部分展示
自动化CI分析报告系统_第1张图片
这个文件是使用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

这样每天就可以收到一个集中式的分析报告

你可能感兴趣的:(python,编程,服务器)