生活随笔
收集整理的這篇文章主要介紹了
jira以及jira API简单介绍
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近需要預(yù)言:是否可以通過(guò)jira API實(shí)現(xiàn)用例管理,對(duì)jira的應(yīng)用、API、擴(kuò)展等進(jìn)行了一定的了解。
?
Jira介紹:
jira是目前比較流行的基于Java架構(gòu)的管理系統(tǒng)(Atlassian公司支持),有開(kāi)源代碼,方便做二次開(kāi)發(fā)(可擴(kuò)展性)。
?
Jira的主要功能:
問(wèn)題追蹤和管理:用它管理項(xiàng)目,跟蹤任務(wù)、bug、需求,通過(guò)jira的郵件通知功能進(jìn)行協(xié)作通知,在實(shí)際工作中使工作效率提高很多問(wèn)題跟進(jìn)情況的分析報(bào)告:可以隨時(shí)了解問(wèn)題和項(xiàng)目的進(jìn)展情況項(xiàng)目類別管理功能:可以將相關(guān)的項(xiàng)目分組管理:任務(wù)分配功能:方便測(cè)試管理人員,實(shí)現(xiàn)平臺(tái)上的任務(wù)分配,將任務(wù)分配給不同的負(fù)責(zé)人。項(xiàng)目email地址功能:每個(gè)項(xiàng)目可以有不同的email(該項(xiàng)目的通知郵件從該地址發(fā)出)無(wú)限制的工作流:可以創(chuàng)建多個(gè)工作流為不同的項(xiàng)目使用:?
Jira 官方API文檔:
https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2
?
Jira簡(jiǎn)單介紹參考鏈接:
https://baijiahao.baidu.com/s?id=1600789671759427109&wfr=spider&for=pc
https://blog.csdn.net/liumiaocn/article/details/81301550
?
Python 的jira庫(kù) ?
python的庫(kù)中有專門(mén)針對(duì)jira的操作。官方文檔:https://jira.readthedocs.io/en/latest/api.html#jira
1 #!/usr/bin/env python
2 # encoding: utf-8
3 from jira
import JIRA
4 import time
5
6 jac = JIRA(
'http://xxx.xxx.xx.xxx:8080', basic_auth=(
'xxx',
'xxxyyy'))
7 issue_list1 =
[]
8 for i
in range(1000, 2000
):
9 issue_list1.append({
10 'project': {
'key':
'TE'},
11 'summary':
"[%s]summary bulk added by api" %
i,
12 'description':
'0',
13 'issuetype': {
'id': 10007
}
14 })
15
16 def func_time(func):
17 def wrapper(*args, **
kwargs):
18 start =
time.time()
19 result = func(*args, **
kwargs)
20 end =
time.time()
21 print(
"call %s, time: %f" %(func.
__name__, end -
start))
22 return result
23 return wrapper
24
25 @func_time
26 def create_issues(issue_list2):
27 # 批量創(chuàng)建
28 issues = jac.create_issues(field_list=
issue_list1)
29 print(len(issue_list2))
30
31 @func_time
32 def search_one_issue():
33 # 搜索指定的一個(gè)issue
34 jra = jac.project(
'TE')
35 a=jac.search_issues(
'project=TE and key = TE-400')
36
37 @func_time
38 def search_issues():
39 # 批量搜索
40 issues = jac.search_issues(
'project=TE', maxResults=600
)
41 print(len(issues))
42
43 @func_time
44 def update_one_issue():
45 # 更新指定的一個(gè)issue
46 myissue = jac.issue(
'TE-400')
47 issueupdate =
{
48 'summary':
'test1001',
49 'description':
'update_for_myisue'
50 }
51 myissue.update(issueupdate)
52
53 a =
myissue.fields()
54 if a.summary == issueupdate.get(
'summary'):
55 print(
"true")
56 else:
57 raise RunnerError(
'error')
58
59 @func_time
60 def get_issue():
61 # 獲取一個(gè)issue issueid or issuekey
62 myissue = jac.issue(
'12006')
63
64 @func_time
65 def delete_issues():
66 # 批量刪除
67 issues = jac.search_issues(
'project = TE AND description ~ "0"')
68 for i
in issues:
69 i.delete()
70
71 @func_time
72 def delete_one_issue():
73 # 刪除一個(gè)指定的issue
74 myissue = jac.issue(
'TE-1')
75 myissue.delete()
76
77
78 create_issues(issue_list1)
79 search_one_issue()
80 search_issues()
81 update_one_issue()
82 get_issue()
83 delete_issues()
84 delete_one_issue()
?
插件Zephyr:
創(chuàng)建、查看、編輯、克隆和執(zhí)行測(cè)試鏈接到故事、任務(wù)、需求等。計(jì)劃測(cè)試執(zhí)行周期邏輯上用文件夾結(jié)構(gòu)將測(cè)試周期中的測(cè)試用例分組與測(cè)試板的新的敏捷集成將文件夾和周期鏈接到sprint以增強(qiáng)可追溯性鏈接的缺陷Project-centric導(dǎo)航帶有基本/高級(jí)搜索和預(yù)定義/保存過(guò)濾器的執(zhí)行導(dǎo)航器雙向端到端跟蹤報(bào)告配置,跟蹤質(zhì)量指標(biāo)共享儀表板用于高級(jí)搜索的Zephyr查詢語(yǔ)言(ZQL)將測(cè)試自動(dòng)化和CI工具與ZAPI集成(單獨(dú)銷售)支持德語(yǔ)、法語(yǔ)、西班牙語(yǔ)、俄語(yǔ)、韓語(yǔ)、日語(yǔ)、簡(jiǎn)體中文和土耳其語(yǔ)- jira的插件Zephyr可以實(shí)現(xiàn)測(cè)試用例管理—參考鏈接:
https://blog.csdn.net/qq_32532165/article/details/83105442
?
并發(fā)操作:
進(jìn)程池—設(shè)定指定數(shù)量的進(jìn)程,當(dāng)有新的請(qǐng)求提交到pool中時(shí),如果進(jìn)程池還沒(méi)有滿,那么就會(huì)創(chuàng)建一個(gè)新的進(jìn)程來(lái)執(zhí)行該請(qǐng)求;如果進(jìn)程池中的進(jìn)程數(shù)已經(jīng)達(dá)到最大值,那么該請(qǐng)求就會(huì)等待,直到進(jìn)程池中有進(jìn)程結(jié)束,才會(huì)創(chuàng)建新的進(jìn)程進(jìn)行相應(yīng)的執(zhí)行。
1 #coding:utf-8
2 from multiprocessing import Pool
3 import time
4 import gevent
5 from gevent import monkey
6 from jira import JIRA
7
9 jac = JIRA('http://200.200.84.135:8080', basic_auth=('zjx', 'jiaxin32213'))
10
13 def run():
14 for i in range(0,10):
15 issue_value = {
16 'project': {'key': 'TE'},
17 'summary': "[%s]summary bulk added by api" % i,
18 'description': '0',
19 'issuetype': {'id': 10007}
20 }
21 jac.create_issue(fields = issue_value)
22
24 def call_gevent(count):
25 """調(diào)用gevent 模擬高并發(fā)"""
26 begin_time = time.time()
27 run_gevent_list = []
28 for i in range(count):
29 print('--------------%d--Test-------------' % i)
30 run_gevent_list.append(gevent.spawn(run()))
31 gevent.joinall(run_gevent_list)
32 end = time.time()
33 #print('單次測(cè)試時(shí)間(平均)s:', (end - begin_time) / count)
34 print('累計(jì)測(cè)試時(shí)間 s:', end - begin_time)
35
38 def main():
39 begin_time = time.time()
40 pool = Pool(processes=4)
41 for x in range(3):
42 result = pool.apply_async(call_gevent,(10,))
43 pool.close()
44 pool.join()
45 if result.successful():
46 print 'successful'
47 end = time.time()
48 print('累計(jì)測(cè)試時(shí)間 s:', end - begin_time)
49
51 #main()
53 call_gevent(count=30) ?
轉(zhuǎn)載于:https://www.cnblogs.com/sunshine-blog/p/9899711.html
總結(jié)
以上是生活随笔為你收集整理的jira以及jira API简单介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。