Chiefconfetqa nalutin

8,013 views

Published on

JIRA: dashboards и SOAP API

Выступление Никиты Налютина на онлайн-конференции для тест-менеджеров Chief ConfeT&QA, весна 2012 года

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,013
On SlideShare
0
From Embeds
0
Number of Embeds
7,429
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Chiefconfetqa nalutin

  1. 1. И никуда не надо ехать! JIRA: dashboards и SOAP API Никита Налютин, Undev.ru
  2. 2. О чем мы сегодня? ● Какие отчеты бывают ● Какие средства есть в JIRA для облегчения подготовки отчетов (dashboards) ● Как можно генерировать отчеты при помощи внешних скриптов (SOAP API в Python)
  3. 3. Тикеты в scope релиза
  4. 4. Открытые баги
  5. 5. Сводные таблицы и диаграммы
  6. 6. Собираем все вместе
  7. 7. SOAP API: когда нам нужно большее ● SOAP — протокол обмена данными с сервером ● Клиент и сервер обмениваются друг с другом маленькими XML- документами
  8. 8. Необходимые библиотеки ● PyXML 0.8.4 ● SOAPpy 0.11.6 ● fpconst 0.7.2 ● Еще есть библиотека ● Jira-cli-1.5.0 про нее в этой презентации ничего не сказано :)
  9. 9. Установление соединения import SOAPpy; soap = SOAPpy.WSDL.Proxy('http://jira- server/rpc/soap/jirasoapservice-v2? wsdl') jirauser='user1' passwd='pass1' auth = soap.login(jirauser, passwd)
  10. 10. Словари statuses = soap.getStatuses(auth) priorities = soap.getPriorities(auth) resolutions = soap.getResolutions(auth) st = dict() for status in statuses: st[status['id']] = status['name']
  11. 11. Запросы ● JQL запросы: issuesFromTextSearch = soap.getIssuesFromJqlSearch(auth, 'project = DEV AND (issuetype = "DEV: QA testing " AND "Affects Patch/es" = "*point") AND status in ("DEV: Resolved", "DEV: Developed")', 10000); ● Сохраненные из фильтра: issues = soap.getIssuesFromFilter(auth, "17395")
  12. 12. Атрибуты тикетов for issue in issues: priority = pr[issue['priority']] status = st[issue['status']] if not issue['resolution'] == None: resolution = res[issue['resolution']] else: resolution = ""
  13. 13. Пользовательские атрибуты customFields = issue['customFieldValues'] for customField in customFields: if customField['customfieldId'] == 'customfield_10685': for i in customField['values']: fixPatches = fixPatches + i
  14. 14. Списанное время worklogs = soap.getWorklogs(auth,issue['key']) for worklog in worklogs: date = datetime.date( worklog['startDate'][0], worklog['startDate'][1], worklog['startDate'][2]) if date == reportDate: author = soap.getUser(auth, worklog['author'])['fullname'] timeSpent = worklog['timeSpent'] comment = worklog['comment']
  15. 15. JIRA: dashboards и SOAP API Никита Налютин, Undev.ru http://NikitaNalyutin.moikrug.ru

×