手動過濾重複bug太繁瑣?教你一招,用python自動過濾

也許有人每天執行自動化測試,每天自動提交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太繁瑣?教你一招,用python自動過濾

自動化指令碼實現

獲取所有bug

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

手動過濾重複bug太繁瑣?教你一招,用python自動過濾

您還可以使用python打包的jira (pip install jira)庫中的search_issues獲取問題總數。

手動過濾重複bug太繁瑣?教你一招,用python自動過濾

然後,根據總數,逐頁遍歷,得到summary(標題)和description(詳細描述)。

手動過濾重複bug太繁瑣?教你一招,用python自動過濾

比較issue相似度

比較標題直接用“= =”判斷,比較描述用python自帶的庫difflib比較。

手動過濾重複bug太繁瑣?教你一招,用python自動過濾

關閉issue

1、可以直接呼叫jira介面https://docs 。 atlassian 。 com/software/jira/docs/API/rest/8 。 5 。 5/# API/2/issue-do transition,也可以使用python中的jira庫transition_issue。

手動過濾重複bug太繁瑣?教你一招,用python自動過濾

指令碼迭代最佳化

劇本的第四段,主要是透過90%的重複度來判斷是否有重合。這個指標可以根據個人需要進行調整,也可以透過args引數等傳遞。

在本文中,該指令碼主要透過將其轉換為先討論後完成來處理其迴圈狀態。如果有其他不同的操作,可以修改transition_issue的引數。

不同公司的Transition_issue id不一致。這個值可以由jira管理員詢問,也可以由http請求工具獲取。

可能遇到的問題

如果你能想到這個需求,那麼這個方案就簡單多了,主要是因為你需要知道發行流程,其次你可能需要知道difflib庫。

總結

這個方案和例子可以和自動提交bug給jira結合使用,也可以單獨使用,因為這個過濾資訊不依賴於提交問題的方式。

該方案的主要流程是獲取所有的發行資訊(標題、詳細描述等)。)——對比每個問題的重複資訊——確認重複後,修改問題的狀態(可以是關閉或其他,按要求操作)。

除了處理bug,這個方案還可以擴充套件,比如分析jira上的需求和任務。