也许有人每天运行自动化测试,每天自动提交bug。可能昨天提交的bug还没解决,今天又提了一次。如果一周内积累了成千上万的bug该怎么办?手动逐个过滤是否太复杂了?
然后,为了解决这个问题,今天我们将介绍一种自动过滤方案及其实践。
测试需求分析
该方案主要由python/pytest实现,主要针对jira上的bug进行处理。当然也可以用来过滤重复的需求,重复的任务等等。
准备工作
1.在处理之前,首先需要了解部门的jira流程图(不同的公司或部门可能不同)。确认后,您将知道在发现重复问题后应该做什么,以及它的状态应该如何流动。
本文主要以我的具体实践为例。如果有什么不同,可以自己修改。
2.申请一个可用的jira账户(为了方便很多人,建议申请一个公共账户)。
测试用例设计
获取未处理自动化bug
获取所有已存在的未处理的自动化bug,具体过滤如下:项目为xxx,报告者为xxx,状态为Unresolved(对应状态为open)。
比较bug标题和详细信息
比较bug的标题是否一致。如果一致,请详细描述描述。如果详细描述的重复率达到90%以上(此指标可以更改),则视为此类bug重复。
确认bug重复后处理
如果比较显示bug重复,重复的bug中的一个会被保留,其他类似的bug会被关闭。根据流程图(如下图),关闭最简单的流程状态是先中转待讨论,再关闭。
自动化脚本实现
获取所有bug
可以直接使用jira接口/rest/api/2/search
您还可以使用python打包的jira (pip install jira)库中的search_issues获取问题总数。
然后,根据总数,逐页遍历,得到summary(标题)和description(详细描述)。
比较issue相似度
比较标题直接用“= =”判断,比较描述用python自带的库difflib比较。
关闭issue
1、可以直接调用jira接口https://docs . atlassian . com/software/jira/docs/API/rest/8 . 5 . 5/# API/2/issue-do transition,也可以使用python中的jira库transition_issue。
脚本迭代优化
剧本的第四段,主要是通过90%的重复度来判断是否有重合。这个指标可以根据个人需要进行调整,也可以通过args参数等传递。
在本文中,该脚本主要通过将其转换为先讨论后完成来处理其循环状态。如果有其他不同的操作,可以修改transition_issue的参数。
不同公司的Transition_issue id不一致。这个值可以由jira管理员询问,也可以由http请求工具获取。
可能遇到的问题
如果你能想到这个需求,那么这个方案就简单多了,主要是因为你需要知道发行流程,其次你可能需要知道difflib库。
总结
这个方案和例子可以和自动提交bug给jira结合使用,也可以单独使用,因为这个过滤信息不依赖于提交问题的方式。
该方案的主要流程是获取所有的发行信息(标题、详细描述等)。)——对比每个问题的重复信息——确认重复后,修改问题的状态(可以是关闭或其他,按要求操作)。
除了处理bug,这个方案还可以扩展,比如分析jira上的需求和任务。