Python高级用法:自动提交bug到jira

发表于:2021-11-22 09:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:jelly    来源:51Testing软件测试网原创

#
Bug
  背景介绍
  作为一个测试同学,提交bug是个绕不过去的坎(请不要杠哈,我真不太相信有测试同学从来未提交过bug)。
  但是每次提交bug,少则几项多则几十项,填得有点头大有没有?即使有模板,根据模板再修改,手动填的时候也经常会漏掉一些项有没有?
  所以为了我们这些懒人的福利,自动化提交bug就应运而生了。

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

  测试流程

  自动化脚本实现
  bug模板及提交jira手工步骤
  提完bug的bug模板参考下图:

  创建bug时,参考下图,可以看见目前统一模板有如下10个必填项:
  项目、问题类型、概要、优先级、严重程度、复现概率、bug分类、影响版本、模块、描述。
  此处10个必填项对应后面jira接口的相应字段。

  jira提交issue接口定义
  createissue接口定义,baseurl参考公司网址,此接口的详细url为:/rest/api/2/issue,方法为method。
  请求体参考下图的example、update字段,此处非必要,暂时忽略,我们步骤1中说的10个必填项都包含在fields字段中。

  一般情况,每个字段可以通过id、name、key3个属性值来设置,但有些时候name属性不一定能找到(例如项目),所以建议首先用id和key,然而id有需要调用其他接口获取,无法直接从界面知道,所以可以首选key。
  例如项目的key则为括号里的内容,参考下图,bug管理demo项目的项目key是BUGDEMO,
  此点为本人调用其他接口观察到的,具体可以找atlassian官方确认咨询。

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

  summary、description此处暂不用特别关注,在后面步骤中我们将会使用捕捉到的内容进行替换。
  更多jira接口文档详细参考:https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/issue-createIssue

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

  项目:步骤2中已描述,此处不再赘述。
  标题(summary)、详细描述(description)、附件的捕捉:
  (1) 断言时描述详细信息(包括失败字段、预期结果和实际结果),例如下图:

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

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

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

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

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

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

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

  可能遇到的问题
  捕捉信息可能需要在写自动化脚本的时候相关操作,都能断言实际和预期等详细信息。
  附件中信息也需要自行控制输出。
  如果bug系统非jira,可以自行找其bug系统的接口文档或其他提交bug操作。

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

  版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号