怎样让脚本发现问题自动在jira记录bug

前提:bug记录为JIRA

自动化脚本跑完后,如果发现问题,再用手工把问题录入jira,这样是不是觉得自动化做得还不够彻底?下面讲的是如何联通jira。


首先测试用例中需要带有开发名称和测试人员名称(对应jira内的名称)。

测试结果数据和人员名称聚合。

如果有重试机制,重试完成最后再统一录入jira。

jira有开放的api,分两种:

  • java rest api — 以java依赖包的方式调用 点击查看:https://developer.atlassian.com/server/jira/platform/java-apis/,api doc: https://docs.atlassian.com/software/jira/docs/api/8.22.3/。pom添加如下
  • com.atlassian.jira jira-api ${atlassian.product.version} provided

    2 . rest api — 通过网络调用,地址:https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues

    调用jira前需要获取token

    使用 java包时需要先调用auth 获取token

    使用api时,首先要获取authentication,它支持 OAuth2.0 这里可以用简单的basic auth 通过鉴权,这种方式可以直接调用所需的接口,不需要再次获取token,如果jira配置不支持这种鉴权方式,就需要在jira中配置token 官网地址:。https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Tokens-de-API

    basic auth 使用:

    curl -D- -X GET -H “Authorization: Basic ZnJlZDpmcmVk” -H “Content-Type: application/json” “https://your-domain.atlassian.net/rest/api/2/issue/QA-31”

    第三行 basic 后的字符串是,用户名:密码的base64字符。

    有的网络使用统一的登录授权方式,对于这种,使用java包的话需要重写 authentication的头信息,把获取的token代入进去。而调用rest api的方式同样要在请求头加入统一系统的token。

    说下新建bug

    jira新建bug,也就是 issue的 接口地址:POST /rest/api/2/issue

    请求格式:

    { “update”: { “worklog”: [ { “add”: { “timeSpent”: “60m”, “started”: “2019-07-05T11:05:00.000+0000” } } ] }, “fields”: { “summary”: “Main order flow broken”, “parent”: { “key”: “PROJ-123” }, “issuetype”: { “id”: “10000” }, “components”: [ { “id”: “10000” } ], “customfield_20000”: “06/Jul/19 3:25 PM”, “customfield_40000”: “Occurs on all orders”, “customfield_70000”: [ “jira-administrators”, “jira-software-users” ], “project”: { “id”: “10000” }, “description”: “Order entry fails when selecting supplier.”, “reporter”: { “id”: “5b10a2844c20165700ede21g” }, “fixVersions”: [ { “id”: “10001” } ], “customfield_10000”: “09/Jun/19”, “priority”: { “id”: “20000” }, “labels”: [ “bugfix”, “blitz_test” ], “timetracking”: { “remainingEstimate”: “5”, “originalEstimate”: “10” }, “customfield_30000”: [ “10000”, “10002” ], “customfield_80000”: { “value”: “red” }, “security”: { “id”: “10000” }, “environment”: “UAT”, “versions”: [ { “id”: “10000” } ], “duedate”: “2019-03-11”, “customfield_60000”: “jira-software-users”, “customfield_50000”: “Could impact day-to-day work.”, “assignee”: { “id”: “5b109f2e9729b51b54dc274d” } }}// 涉及到的id 可以在脚本中做个名称和id的字典方便匹配//reporter 是报告人,一般对应测试人员的id//assignee 是之给谁,一般是开发人员//customfield_xxxx 字段是jira设置的自定义字段//建立后回应如下:{ “id”: “10000”, “key”: “ED-24”, “self”: “https://your-domain.atlassian.net/rest/api/2/issue/10000”, “transition”: { “status”: 200, “errorCollection”: { “errorMessages”: [], “errors”: {} } }}

    把相应的 id 收集后,自动发送邮件,邮件中用 上方selft的地址把id逐个拼起来就是bug的浏览地址,方便人员点击查看。

    bug的修改,删除请求用法见地址:https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues

    jira大部分查询用的Jql 语法,使用方法:

    例如

    var bodyData = `{ “queries”: [ “summary ~ test AND (labels in (urgent, blocker) OR lastCommentedBy = currentUser()) AND status CHANGED AFTER startOfMonth(-1M) ORDER BY updated DESC”, “invalid query”, “summary = test”, “summary in test”, “project = INVALID”, “universe = 42” ]}`;const response = await api.asApp().requestJira(route`/rest/api/2/jql/parse`, { method: ‘POST’, headers: { ‘Accept’: ‘application/json’, ‘Content-Type’: ‘application/json’ }, body: bodyData});console.log(`Response: ${response.status} ${response.statusText}`);console.log(await response.json());//“AND (labels in (urgent, blocker) OR lastCommentedBy = currentUser()) AND status CHANGED AFTER startOfMonth(-1M) ORDER BY updated DESC ” //上一行这部分条件可以在jira网页地址中调试成功再写入代码。


    除了上面这些,还能做些什么?

    • 使用查询可以获取项目的issue数量,人员数量,类别,从而可以自定义报表,分析软件哪部分缺陷多,缺陷类型是哪些
    • 多项目中共有字段可以通过脚本一键同步建立
    • 定时更新issue或项目状态,发布进度提醒
    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    (0)
    用户投稿
    上一篇 2022年6月14日
    下一篇 2022年6月14日

    相关推荐

    • 62岁退休老人幸福秘诀:学会“不要脸”生活立马有意思多了

      人这一辈子,很多时候身不由己,总是被迫做着一些事情。时光匆匆,转眼已是暮年,一切都该放下了,以前那些拿不定主意的事,如今可以放手去做的时候,就不要顾虑那么多,学会放手,学会“不要脸…

      2022年8月4日
    • 闻泰科技:公司IGBT已成功流片,尚在测试验证阶段

      闻泰科技6月28日在互动平台表示,公司IGBT已成功流片,尚在测试验证阶段。IGBT这类产品的应用市场广泛,主要面向新能源汽车、光伏/风力发电、工业控制、家电产品等领域。目前公司在…

      2022年6月29日
    • 原神迫害考哥实锤,声优梗玩得那叫一个隐秘且巧妙

      众所周知,米哈游是一个造梗小能手,许多新奇有趣的梗就是从米哈游这里流传出去,最后火遍全网。按照米哈游喜欢造梗的个性,自然是不会放弃玩玩声优梗,迫害迫害考哥的。原神这款游戏中,就有不…

      2022年8月11日
    • MyBatisPlus又在搞事了!发布神器,一个依赖轻松搞定权限问题

      今天介绍一个 MyBatis – Plus 官方发布的神器:mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密…

      2022年6月19日
    • Java 通用配置版本配置实现

      Java 通用配置 (一)设计 (二)JVM和环境变量实现 (三)用户配置实现 (四)版本配置实现 本系列参考实现: https://gitee.com/mybatis-mappe…

      2022年7月11日
    • 9月8日深圳疫情最新消息:昨新增本土确诊18例无症状7例

      9月7日0-24时,深圳新增25例阳性病例,18例诊断为新冠肺炎确诊病例,7例诊断为新冠病毒无症状感染者。 其中,在集中隔离的人员筛查中发现13例,在居家隔离的人员筛查中发现8例,…

      2022年9月8日
    • 外观照抄苹果?乐视Y1 Pro只要499

      乐视在经历这么多风风雨雨之后还能存活下来实属不易,如今的乐视不仅卖着家电,还重新发布了乐视手机,而在今年五月份,乐视又推出了乐视Y1 Pro,这次“令人窒息”的不仅仅是硬件配置,还…

      2022年6月29日
    • 每天下班半小时,一个月后蜕变程序员!刚开始我也不信

      今天整理了适合零基础小白自学入门程序员的全套自学教程,帮助大家学习 最全的Python自学视频分享,获取方式在文末哦~ 目录: 一 Python基础 二 数据库编程 三 Liunx…

      2022年7月4日
    • Surge IOS (windows客户端)配置

      相信很多朋友都有听过这款神器的名字,这是一款功能强大且非常好用的应用,用户可以用来阻挡广告、网络调试、流量跟踪、代理上网等,虽然特别实用,但是该软件的使用还是有许多需要注意的地方,…

      2022年6月17日
    • 9月25日巴州疫情最新情况通报

      天山网讯 巴州疫情防控工作指挥部最新通报:9月25日0时至24时,巴州库尔勒市新增无症状感染者2例,在闭环管理重点人员、高风险区人员核酸检测时发现,均已闭环转运至定点医疗机构进行隔…

      2022年9月26日

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息