Python高级用法:自动化过滤重复bug

Posted 小洁码很快!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python高级用法:自动化过滤重复bug相关的知识,希望对你有一定的参考价值。

背景介绍

在看完自动提交bug到jira的文章之后,就会有人有疑问了,我每天都在跑自动化测试(美其名曰每日构建),也每天都在自动提交bug,可能昨天提交的bug尚未解决,今天又重新提了一遍,一周下来累计的bug好几千了怎么办,一个个去手动过滤,是不是感觉直接崩溃了?

那么为了解决这个问题,今天我们就来介绍一个自动化过滤的方案及其实践。

测试需求分析

此方案也主要使用python/pytest实现,主要针对于jira上bug的处理,当然也可以使用过滤重复需求,重复任务等等均可以。

准备工作

1.在处理之前,你首先需要了解部门的jira流转图(不同公司或部门都可能不一样),确认清楚后,你才知道找出重复的issue之后需要怎么处理,其状态应该怎么流转。

本文将主要以我具体实践的为例,若有不同,可自行修改。

2.申请可用的jira账号(为了方便多人使用,建议申请一个公共账号)。

测试用例设计

获取未处理自动化bug

获取现有的所有未处理自动化bug,具体过滤为:项目为xxx,报告人为xxx, 状态为未解决Unresolved(对应状态为open)。

比较bug标题和详细信息

比较bug的标题是否一致,若一致则比较详细描述description,如果详细描述的重复度达90%(此指标可以更改)以上则视为这样的bug重复。

确认bug重复后处理

如果比较得出bug重复,则将重复bug保留一个,其他相似的均关闭,根据流转图(如下图),关闭最简单的流转状态就是先transit to待讨论,再转换成关闭。

自动化脚本实现

获取所有bug

可以直接使用jira接口/rest/api/2/search

https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/search。

也可以python中封装好的jira(先pip install jira,即可使用)库中的 search_issues,先获取issue总数。


再根据总数 逐页遍历获取summary(标题)和description(详细描述)。

比较issue相似度

比较标题直接通过 ”==“ 来判断,比较描述通过python自带库difflib来比较。

关闭issue

同1,可以直接调用jira接口https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/issue-doTransition,也可以使用python中的jira库transition_issue。


jira库支持的方法:

脚本迭代优化

第四节脚本中主要是通过90%的重复度来判断是否重合,这个指标可以根据个人需要调整,或是通过args参数传参等。

本文脚本中主要是通过先转换为discuss-done的方式处理的其流转状态,若有其他不同操作可以修改transition_issue的参数。

不同公司的transition_issue id不一致,此项值可以询问jira管理员或是通过http请求工具捕捉。

可能遇到的问题

能想到此需求的话,那么此方案就木有太大难点了,主要是需要了解issue流转流程,其次可能需要了解difflib这个库。

总结

此方案及示例可以结合自动提交bug到jira使用,也可以单独使用,因为此过滤信息并不依赖于提交issue的方式。

此方案的主要流程是获取所有issue信息(标题、详细描述等等)——比较各issue的重复信息——确定重复后,修改issue的状态(可能为关闭也可为其他,根据需要操作)。

除了处理bug,也可以此方案上拓展例如分析jira上的需求、任务等等。

最后也为大家准备一份软件测试学习资源:

囊括了:

  • 2021.9月最新版软件测试全套完整视频
  • 500套软件测试面试题+面试讲解视频
  • 10套典藏版 超高价值的软件测试试卷
  • 300套软件测试项目简历模板
  • 80套各类软测用例的设计模板合集

有需要的朋友可以关注我的公众号:程序员二黑,直接获取!

最后一句话送给大家:机会只垂青有准备的人,这是一个靠本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,导致机遇与你擦肩而过。如果你想要学习,什么时候开始都不晚,而不是瞻前顾后,你只要用尽全力,剩下的交给时间!

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们群:642830685,里面有各种软件测试资源和技术讨论。

加油吧,测试人!路就在脚下,成功就在明天!

精彩推荐:

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档…

腾讯二面:web测试问题被虐哭了,直到学长给了我这些知识点…

面试滴滴科技,被按在地上摩擦,鬼知道我经历了什么?

以上是关于Python高级用法:自动化过滤重复bug的主要内容,如果未能解决你的问题,请参考以下文章

Selenium+python自动化12+日志logging基本用法高级用法

Python自动化开发课堂笔记Day08 - Python进阶(面向对象的高级用法,网络编程)

python自动化测试之函数(匿名函数lambda和三目运算等(高级用法))

python中set()函数的用法

jmeter+Jenkins自动化性能测试高级用法

fab高级用法