• 14
  • 14
分享
  • Python高级用法:自动提交bug到jira——软件测试圈
  • 曼倩诙谐 2021-11-25 10:57:57 字数 1826 阅读 2026 收藏 14

  背景介绍

  作为一个测试同学,提交bug是个绕不过去的坎(请不要杠哈,我真不太相信有测试同学从来未提交过bug)。

  但是每次提交bug,少则几项多则几十项,填得有点头大有没有?即使有模板,根据模板再修改,手动填的时候也经常会漏掉一些项有没有?

  所以为了我们这些懒人的福利,自动化提交bug就应运而生了。

  测试需求分析

  此自动化需求主要涉及到python/pytest,且需要jira API文档(下文有jira接口文档链接)。

  测试流程

1.png

  自动化脚本实现

  bug模板及提交jira手工步骤

  提完bug的bug模板参考下图:

2.png

  创建bug时,参考下图,可以看见目前统一模板有如下10个必填项:

  项目、问题类型、概要、优先级、严重程度、复现概率、bug分类、影响版本、模块、描述。

  此处10个必填项对应后面jira接口的相应字段。

3.png

  jira提交issue接口定义

  createissue接口定义,baseurl参考公司网址,此接口的详细url为:/rest/api/2/issue,方法为method。

  请求体参考下图的example、update字段,此处非必要,暂时忽略,我们步骤1中说的10个必填项都包含在fields字段中。

4.png

  一般情况,每个字段可以通过id、name、key3个属性值来设置,但有些时候name属性不一定能找到(例如项目),所以建议首先用id和key,然而id有需要调用其他接口获取,无法直接从界面知道,所以可以首选key。

  例如项目的key则为括号里的内容,参考下图,bug管理demo项目的项目key是BUGDEMO,

  此点为本人调用其他接口观察到的,具体可以找atlassian官方确认咨询。

5.png

  经过调用多方接口获得能成功调用的接口字段属性如下图:

6.png

  summary、description此处暂不用特别关注,在后面步骤中我们将会使用捕捉到的内容进行替换。

  更多jira接口文档详细参考:https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/issue-createIssue

  issue相关信息捕捉

  版本及环境:面板机此处是调用获取设备状态信息的接口获取相关固件和算法等版本信息(作为setup调用一次即可):

7.png

  项目:步骤2中已描述,此处不再赘述。

  标题(summary)、详细描述(description)、附件的捕捉:

  (1) 断言时描述详细信息(包括失败字段、预期结果和实际结果),例如下图:

8.png

  (2) 加入hook函数pytest_runtest_make_report监听运行相关信息。

9.png

  (3)对监听到的相关信息进行处理,title即为捕捉到的运行的测试用例标题,由于函数title为英文,可以再和中文标题一一映射一下。

10.png

  description为运行时的详细输出,类似于下图:

11.png

  out为调试日志写入到文件,后期作为附件上传,其内容主要是写用例时的日志输出,类似下图:

12.png

  其中hook函数pytest_runtest_make_report 更多详细内容可参考pytest官方文档(上一节中有附件),日志输出可以参考logger模块或是各人的写日志模块。

  通过以上步骤初步生成的bug如图:

13.png

  注意,上传附件为另外一个接口:

14.png

  脚本迭代优化

  可以不用调用原始的jira接口,python中jira库中有封装常用的jira接口,如jira.create_issue等。

  可能遇到的问题

  捕捉信息可能需要在写自动化脚本的时候相关操作,都能断言实际和预期等详细信息。

  附件中信息也需要自行控制输出。

  如果bug系统非jira,可以自行找其bug系统的接口文档或其他提交bug操作。

  总结

  此方案及示例需要配合自身的自动化用例使用,否则手动操作后也无法自动捕捉其错误信息。

  此方案的重点也是在捕捉错误信息,其他调用jira接口对于一个调包侠来说是基本操作,获取jira模板自行与pm商议即可,此方案如果上线到jenkins通过每日构建每天来run的话可能会出现大量重复的bug(由于开发解决bug没有那么快),多次后面会有文章来讨论如何解决此问题。



作者:jelly   

来源:http://www.51testing.com/html/07/n-4480007.html


2021 问卷礼物图.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 下面是 5 个关于索引和 SQL 查询性能的测试题;其中 4 个题目都是答案二选一,1 个题目是三选一。只要答对 3 个就算及格,是不是貌似很简单?但实际上只有 40% 的人能够及格。我们在测试题的后面会给出答案解析,不过建议你先尝试一下,看看答对几个!测试题问题 1:以下查询语句有没有性能问题?CREATE TABLE t1 (   id INT NOT NULL,   dt DATE,   PRIMARY KEY (id) ); CREATE...
            0 1 3484
            分享
          •   在软件测试这条道路上,大部分的职业技能发展道路都会是纯业务手工测试→自动化测试→性能测试→安全测试/测试开发。  但是却有着一部分人起初进入软件测试这一行看重的就是软件测试属于IT行业,门槛比较低,不需要代码基础。  这就导致了这一部分测试工程师在一定程度上,在职位上的进阶就比较困难了。因为现在基本绝大多数互联网公司都已经把代码编程和自动化作为必要的技能。  为了更好的解决这部分工程师的工作痛点,本文分享一款近几年非常火爆的一款自动化测试工具:Katalon Studio。  1. Katalon Studio介绍  Katalon Studio 是一款在网页应用、移动和网页服务...
            0 0 497
            分享
          •   现状:  看过前面的文章,楼主用的是python,所以在搭建测试报告这块的时候使用的是unittest+htmlTestRunner;然后发现生成出来的报告,总是有那么不完美的地方,比如想增加图片,比如显示风格改变下;然后尝试性的去修改了一个htmlTestRunner源码,虽然图片出来了,显示风格修改不了...so...萌生的弃意...  问题:  1.unittest  unittest当案例异常或脚本执行异常时,无法继续执行下个案例~,比如登录时,后台服务异常、登录用户无菜单权限异常、新增用户状态导致无法登录异常等等;  unittest.assertEqual、assertRais...
            0 0 811
            分享
          •   2022软件测试行业调查报告开始了,点击链接http://vote.51testing.com/ 填写问卷,五门测试实战课程任选两门免费学习。快来参加吧~  前言  这段时间共持续了四个月,总共投了 19 家公司,有几家挂在了不同的阶段,最后拿到了 8 家的 offer,这段时间里面了几十场面试,大多数面试的问题都懒得做记载了,在此记录一些大概的问题走向、一些面试常见的问题以及一丢丢面试技巧供大家参考。  一、四个月战况  投递统计(统计了一下,这四个月共向以下 19 个公司投递了简历,共拿了 8 个 offer)  一线大厂:字节、百度、腾讯、拼多多。  准一线大厂:华为、快手、美团、图...
            0 0 1323
            分享
          • 一、游戏测试游戏测试作为软件测试的一部分,它具备了软件测试所有的一切共同的特性:所以游戏测试则主要分为两部分组成一是传统的软件测试二游戏本身的测试(游戏可玩性测试)1、 游戏情节的测试,主要指游戏世界中的任务系统的组成2、 游戏世界的平衡测试,主要表现在经济平衡,能力平衡(包含技能,属性等等),3、 游戏文化的测试,比如整个游戏世界的风格,是中国文化主导,还是日韩风格等等4、 游戏世界的搭建,包含聊天功能,交易系统,组队等可以让玩家在游戏世界交互的平台。二、游戏测试方法测试的定义测试工作是,解决玩家所遇非正常问题的预测工作,同时也是不断调试平衡的一个长期观察任务。无论在什么时间段,功能实现、内...
            0 0 1652
            分享
      • 51testing软件测试圈微信