最近需要预言:是否可以通过jira API实现用例管理,对jira的应用、API、扩展等进行了一定的了解。

Jira介绍:

jira是目前比较流行的基于Java架构的管理系统(Atlassian公司支持),有开源代码,方便做二次开发(可扩展性)。

Jira的主要功能:

  1. 问题追踪和管理:用它管理项目,跟踪任务、bug、需求,通过jira的邮件通知功能进行协作通知,在实际工作中使工作效率提高很多
  2. 问题跟进情况的分析报告:可以随时了解问题和项目的进展情况
  3. 项目类别管理功能:可以将相关的项目分组管理:
  4. 任务分配功能:方便测试管理人员,实现平台上的任务分配,将任务分配给不同的负责人。
  5. 项目email地址功能:每个项目可以有不同的email(该项目的通知邮件从该地址发出)
  6. 无限制的工作流:可以创建多个工作流为不同的项目使用:

Jira 官方API文档:

https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2

Jira简单介绍参考链接:

https://baijiahao.baidu.com/s?id=1600789671759427109&wfr=spider&for=pc
https://blog.csdn.net/liumiaocn/article/details/81301550

Python 的jira库 ?

python的库中有专门针对jira的操作。官方文档:https://jira.readthedocs.io/en/latest/api.html#jira

  • 简单增删改查操作:
 #!/usr/bin/env python
# encoding: utf-8
from jira import JIRA
import time jac = JIRA('http://xxx.xxx.xx.xxx:8080', basic_auth=('xxx', 'xxxyyy'))
issue_list1 = []
for i in range(1000, 2000):
issue_list1.append({
'project': {'key': 'TE'},
'summary': "[%s]summary bulk added by api" % i,
'description': '',
'issuetype': {'id': 10007}
}) def func_time(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print("call %s, time: %f" %(func.__name__, end - start))
return result
return wrapper @func_time
def create_issues(issue_list2):
# 批量创建
issues = jac.create_issues(field_list=issue_list1)
print(len(issue_list2)) @func_time
def search_one_issue():
# 搜索指定的一个issue
jra = jac.project('TE')
a=jac.search_issues('project=TE and key = TE-400') @func_time
def search_issues():
# 批量搜索
issues = jac.search_issues('project=TE', maxResults=600)
print(len(issues)) @func_time
def update_one_issue():
# 更新指定的一个issue
myissue = jac.issue('TE-400')
issueupdate = {
'summary': 'test1001',
'description': 'update_for_myisue'
}
myissue.update(issueupdate) a = myissue.fields()
if a.summary == issueupdate.get('summary'):
print("true")
else:
raise RunnerError('error') @func_time
def get_issue():
# 获取一个issue issueid or issuekey
myissue = jac.issue('') @func_time
def delete_issues():
# 批量删除
issues = jac.search_issues('project = TE AND description ~ "0"')
for i in issues:
i.delete() @func_time
def delete_one_issue():
# 删除一个指定的issue
myissue = jac.issue('TE-1')
myissue.delete() create_issues(issue_list1)
search_one_issue()
search_issues()
update_one_issue()
get_issue()
delete_issues()
delete_one_issue()

插件Zephyr:

  • 主要功能包括:
  1. 创建、查看、编辑、克隆和执行测试
  2. 链接到故事、任务、需求等。
  3. 计划测试执行周期
  4. 逻辑上用文件夹结构将测试周期中的测试用例分组
  5. 与测试板的新的敏捷集成
  6. 将文件夹和周期链接到sprint以增强可追溯性
  7. 链接的缺陷
  8. Project-centric导航
  9. 带有基本/高级搜索和预定义/保存过滤器的执行导航器
  10. 双向端到端跟踪报告
  11. 配置,跟踪质量指标共享仪表板
  12. 用于高级搜索的Zephyr查询语言(ZQL)
  13. 将测试自动化和CI工具与ZAPI集成(单独销售)
  14. 支持德语、法语、西班牙语、俄语、韩语、日语、简体中文和土耳其语
  • jira的插件Zephyr可以实现测试用例管理—参考链接:

https://blog.csdn.net/qq_32532165/article/details/83105442

并发操作:

进程池—设定指定数量的进程,当有新的请求提交到pool中时,如果进程池还没有满,那么就会创建一个新的进程来执行该请求;如果进程池中的进程数已经达到最大值,那么该请求就会等待,直到进程池中有进程结束,才会创建新的进程进行相应的执行。

  • 简单代码示例:
 #coding:utf-8
from multiprocessing import Pool
import time
import gevent
from gevent import monkey
from jira import JIRA jac = JIRA('http://200.200.84.135:8080', basic_auth=('zjx', 'jiaxin32213')) def run():
for i in range(0,10):
issue_value = {
'project': {'key': 'TE'},
'summary': "[%s]summary bulk added by api" % i,
'description': '',
'issuetype': {'id': 10007}
}
jac.create_issue(fields = issue_value) def call_gevent(count):
"""调用gevent 模拟高并发"""
begin_time = time.time()
run_gevent_list = []
for i in range(count):
print('--------------%d--Test-------------' % i)
run_gevent_list.append(gevent.spawn(run()))
gevent.joinall(run_gevent_list)
end = time.time()
#print('单次测试时间(平均)s:', (end - begin_time) / count)
print('累计测试时间 s:', end - begin_time) def main():
begin_time = time.time()
pool = Pool(processes=4)
for x in range(3):
result = pool.apply_async(call_gevent,(10,))
pool.close()
pool.join()
if result.successful():
print 'successful'
end = time.time()
print('累计测试时间 s:', end - begin_time) #main()
call_gevent(count=30)

jira以及jira API简单介绍的更多相关文章

  1. kafka-python的API简单介绍

    在上一篇文章中说明了kafka-python的API使用的理论概念,这篇文章来说明API的实际使用. 在官方文档详细列出了kafka-python的API接口https://kafka-python. ...

  2. webservice和wcf和web.api简单介绍

    转自:无废话的wcf等等 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Ser ...

  3. 嵌入式 Linux下curl库API简单介绍

    1:CURLcode curl_global_init(long flags); 这个函数全局需要调用一次(多次调用也可以,不过没有必要), 所以这也是把Curlplus设计成单体类的原因,curl_ ...

  4. 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

    1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...

  5. HADOOP的API简单介绍

    public class HdfsClient { FileSystem fs = null; @Before public void init() throws Exception { // 构造一 ...

  6. salesforce零基础学习(八十五)streaming api 简单使用(接近实时获取你需要跟踪的数据的更新消息状态)

    Streaming API参考链接: https://trailhead.salesforce.com/en/modules/api_basics/units/api_basics_streaming ...

  7. 可方便扩展的JIRA Rest Web API的封装调用

    JIRA是一个缺陷跟踪管理系统,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域,当我们需要把第三方业务系统集成进来时,可以调用他的API. JIRA本身的A ...

  8. Docker 创建 Jira Core(Jira SoftWare) 7.12.3 中文版

    目录 目录 1.介绍 1.1.什么是 JIRA Core? 1.2.什么是 JIRA SoftWare 2.JIRA 的官网在哪里? 3.如何下载安装? 4.对 JIRA 进行配置 4.1.JIRA ...

  9. Odoo 二次开发教程(五)-新API的介绍与应用

    [关于odoo新API的介绍,Internet上资料很少,或者不够完整详实,这会对初学者造成很大的困惑,本篇的目的就是希望能帮助新手了解新API的大概] odoo 新api的实现是借助于python装 ...

随机推荐

  1. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题

    背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视. 所以在我们前端开发完成后,会有一些列的web应用的上线验证,如自测.QA测试.code review 等 ...

  2. 在Studio中使用Access数据库时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”

    错误提示:

  3. 【scrapy】Item Pipeline

    After an item has been scraped by a spider,it is sent to the Item Pipeline which process it through ...

  4. SQL FULL OUTER JOIN 关键字

    SQL FULL OUTER JOIN 关键字 SQL FULL OUTER JOIN 关键字 FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配 ...

  5. hdu 5087 Revenge of LIS II ( LIS ,第二长子序列)

    链接:hdu 5087 题意:求第二大的最长升序子序列 分析:这里的第二大指的是,全部的递增子序列的长度(包含相等的), 从大到小排序后.排在第二的长度 cid=546" style=&qu ...

  6. 挖掘更合适的MVP模式的架构设计

        关于MVP,关于android,不得不说这篇博客已经来的非常晚了,这篇博客早就想写了,一直都在偷懒,就不给自己这么久的偷懒找借口了.尽管这篇文章po出来的比較晚.可是我所接触的程序猿一些朋友之 ...

  7. Navicat for MySQL中文破解版免费下载

    不知道用过MySQL workbench数据库的朋友或站长有没有都遇到过这样的问题? 就是用ssh的连接方式连接数据库的时候,第一次可以连接的上,但是第二次就不行了,以后再用workbench就再也连 ...

  8. 嵌入式开发之davinci--- 8148/8168/8127 中的图像缩放sclr、swms之后出现图像视频卡顿、屏幕跳跃的问题

    ()问题原因 这边的case链路是这样的camera->sclr(yuv420sp cif)->dup->ipcframeoutm3<->ipcframerocess&l ...

  9. BZOJ 3550 ONTAK2010 Vacation 单纯形

    题目大意:给定一个长度为3n的区间.要求选一些数,且随意一段长度为n的区间内最多选k个数.求选择数的和的最大值 单纯形直接搞 注意一个数仅仅能被选一次 因此要加上xi<=1这个约束条件 不明确3 ...

  10. ArrayAdapter requires the resource ID to be a TextView

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABDUAAADFCAIAAADLz168AAAgAElEQVR4nO2d368kxZXnQ37dn9qdWa