轉自:51testing
1.1、概要
本文主要內容是教大家學習如何利用Python對Jira缺陷進行管理操作。
在平時的測試中,大家對於缺陷管理平台一定不陌生,平時的缺陷都要去平台進行操作。今天我們就來看看Python是怎么樣連接Jira進行操作的。
1.2、獲取JIRA數據
某天領導要看XX項目的目前缺陷情況,總共有多少bug,多少未處理的,未處理的bug中嚴重程度是怎么樣的,這些bug都屬於誰來負責修改等。這一串問題足以把任何一個測試人員擊垮,如果平時不做准備的話。
如果你有一個定期統計缺陷信息的習慣的話,我相信你會很淡定的把結果展示給你的領導,像下圖這樣。
圖表中的數據應該全部來源於缺陷管理平台,如果平時有一個定期統計信息的習慣的話,那么你會很清楚的掌握目前項目的缺陷情況。今天我們重點不是將如何做好項目缺陷的統計,但是自動化的獲取這些平台缺陷的信息的目的就是為了這些數據。
首先Python操作Jira平台只需要利用Jira庫就可以了,安裝也很簡單
控制台輸入:pip install jira
當安裝好jira庫后,我們就可以連接Jira平台了,先來一個簡單的腳本:連接Jira並獲取當前平台所有的項目。
from jira import JIRA
jr=JIRA('http://jira地址',basic_auth=('登錄名','密碼'))
#連接jira
print u'當前登錄用戶 :'+jr.user(jr.current_user())
#打印當前用戶,通過jr.user(用戶名)獲取用戶名稱
print datetime.datetime.now().strftime('%Y年%m月%d日')
print '============================================'
for i in jr.projects():#jr.projects()獲取所有項目,返回項目字典
print i,i.name
輸出結果:
好了,第一步通過jr.projects獲取到項目名稱后,我們就可以獲取該項目下的具體缺陷信息了。獲取項目下缺陷用到search_issues('project=項目name')方法,具體寫法:
issue=jr.search_issues('project=APPBUG')
for i in iss:
print i,i.id
issue返回的是項目下缺陷的list,其中包含每條缺陷的key,id值。當然我們獲取這個列表的長度就是項目目前缺陷總數了。我們看看返回結果:
緊接着就是獲取某條缺陷的具體信息了,像我們平時錄入缺陷所要填的信息,比如:缺陷等級,缺陷狀態,缺陷類型,創建時間,缺陷概要,缺陷內容,缺陷創建人,缺陷指派人,附件,備注等等信息。我們通過上面獲取到的缺陷key值來獲取具體的缺陷上,腳本里這樣寫:
isss=jr.issue('APPBUG-486')
#傳入具體缺陷的key值
print isss.fields.issuetype
#打印缺陷的類型,類型根據自己jira平台設置的類型而定,如缺陷,改進等
print isss.fields. summar
#打印缺陷的主題即標題內容
print isss.fields.description
#打印缺陷的描述即具體內容
print isss.fields. status
#打印缺陷的當前狀態,如:已解決,關閉
print isss.fields. resolution
#打印缺陷的解決結果,此處是開發人員填寫
print isss.fields. priority
#打印缺陷的優先級,如:嚴重,重要,輕微等
print isss.fields. reporter
#打印缺陷的創建人名稱
print isss.fields. assignee
#打印缺陷的指派人名稱
print isss.fields. created
#打印缺陷的創建日期
print isss.fields.updated
#打印缺陷的修改日期
print '%s'%isss.fields.comment.comments
#打印缺陷的備注信息
print isss.fields.attachment
#打印缺陷的附件信息
print '%s'%isss.fields.components
#打印缺陷的所屬模塊信息
print isss.fields.environment
#打印缺陷的環境信息
基本上以上這些缺陷信息都是一個缺陷的必備內容了。此時我們就可以做進一步的開發了,比如獲取項目中各種狀態的缺陷數,利用isss.fields. status獲取項目缺陷的狀態分別統計個數,如果加上isss.fields. priority優先級判斷,可以統計對應的狀態的缺陷優先級個數。如下圖