Python实现统计报告自动化并实现持续集成,极大提高工作效率

是什么

统计报告是我做的一个自动统计缺陷并生成Excel的自动化程序,并且把这个自动化接入到持续集成,创建流水线,把耗时耗力的统计工作,只需要点击几个按钮,一分钟搞定

为什么

至于为什想要做,是因为统计缺陷数量的工作占用太多时间,如果借用缺陷管理工具的API,实现自动统计,则可以大大节省时间,提高效率,实现完自动统计之后,接入持续集成,这样可以解放自身劳动,任何想要看报告的人,都可以直接在持续集成环境中点击几个按钮,等一分钟左右,生成Excel报告

怎么样

我们的缺陷管理平台是TAPD,于是基于TAPD开放的接口,实现的自动统计
,每个人可以基于自身公司使用的缺陷管理平台的API去实现,个人觉得TAPD的接口设计不是很合理,调用不方便,文档也不全不详细等,且API不稳定,经常没有改任何代码的情况下,突然报错,过一会又好了,但是,毕竟在用别人的产品,就只能接受别人的限制,不稳定只能尽量的捕获异常,但是在稳定的情况下,还是能很好的帮助提高统计效率

使用的编程语言是Python,以前一直用Java,尽管也学了Python,但是没有运用,在实现这个自动统计的时候,也算是小小的实践了,对Python的了解进一步增强

使用的Excel库是openpyxl,使用的集成工具是蓝盾,也可以用行业内通用的jenkins(这个还没看怎么部署,有空研究下),使用的请求框架是requests

怎么做

下面贴一些简单的步骤代码,记录下实现过程

总共三步:
1.先获取所有符合条件的数据
2.再按照表格需求,处理数据(传入不同的参数,获取不同的数据)
3.把数据写入Excel并保存到指定目录

Excel的需求是纵列显示缺陷处理人,横列显示缺陷状态,不同的状态下细分每种状态的滞留时间以及纵列显示模块,横列显示状态,状态下不需要再细分

调用获取所有bug的接口,获取所有数据
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第1张图片
传入bug_row_name是用于区分是处理人表还是模块表
all_datas是调用接口返回的所有的数据,这些就是需要处理的数据,get_bug_data()函数是判断是处理人还是模块,按照bug_row_name传的值去区分是处理人还是模块,module为模块,owner是处理人

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第2张图片
isOwner是自己封装的一个判断是否处理人的函数
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第3张图片
如果是处理人,则返回处理人名字集合,处理人集合是通过get_bug_owner_list函数,传入all_datas处理之后获取的
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第4张图片
如果是模块,则返回模块名的集合,模块通过get_bug_module_list传输all_datas处理之后获取的
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第5张图片
接下来,再调用获取bug数量的接口,按照处理人名和缺陷的状态去查询每个处理人名下有多少个不同状态的缺陷
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第6张图片
参数中create_time表示创建时间,因为需求中有不同状态需要按照滞留时间细分,所以需要传入缺陷的创建时间,与当前统计的时间做一个减法,算出滞留时间,当create_time等于0的时候,不传入create_time参数,表示获取所有时间段的数据,传入指定格式的时间,则获取时间段内的,把数据存放在owner_num_list

模块表中不需要按照时间段划分,所以,不需要create_time参数,其他同理,数据存放在module_num_list
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第7张图片

计算时间的方法,可以看到create_time的赋值
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第8张图片
处理人名,处理人状态数据,模块名,模块数据都有了,接下来第三步,写入Excel,根据不同的sheet名写入到不同的sheet中

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第9张图片
写入处理人数据

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第10张图片
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第11张图片
模块同理

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第12张图片

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第13张图片
设置Excel样式
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第14张图片
样式不仅仅这些,还有更多

main函数调用

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第15张图片
整体是个面向过程的思路

附上全局信息
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第16张图片

以上自动化就实现了,生成的文件名按照运行程序的时间生成,默认在当前的工作目录下

最后生成的表格如下,添加了超链接和蓝色,和一些重要数据标红
Python实现统计报告自动化并实现持续集成,极大提高工作效率_第17张图片
最后接入持续集成工具

Python实现统计报告自动化并实现持续集成,极大提高工作效率_第18张图片
不同的集成工具,节点插件名称可能会有所不同,不过应该都是大同小异
总结集成步骤为:

1.配置手动触发或定时触发
2.选择构建机:linux,win,mac均可,只要有python环境
3.代码库配置关联代码库
4.配置一个拉取git代码的插件节点
5.配置一个Bash插件节点:执行对应的Python脚本 需要提前安装Python的依赖,json之类的。pip install json/python等
6.配置一个归档插件:把生成的excel文件归档

以上学习,共享

你可能感兴趣的:(自动化测试)