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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、 越权  越权,指攻击者绕过权限认证对功能或敏感内容进行非授权访问,例如:使用用户A的权限去操作用户B的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞的产生源于系统对用户提交信息缺少必要的权限校验,导致其他用户的信息或用户数据被非法篡改或查询。该漏洞导致的直接结果是信息泄露,严重程度取决于信息的敏感程度。  一般越权漏洞容易出现在权限页面(如查询类操作、账号修改、转账交易)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,服务端需对请求报文中的身份校验参数进行合法性校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越...
            13 13 1399
            分享
          •   摘要:全链路生产压测,指的是模拟真实场景、使用多样化的流量请求进行全流程、全链路压力测试。传统的性能测试,测试环境资源数量、各链路硬件资源配置、配比与生产环境存在差异,且系统性能会受其他关联方的影响,单交易压测结果无法反映系统真实性能情况。而全链路生产压测可以找到系统的瓶颈点、发现系统潜在风险;有效评估系统的实际承载能力,指导调配服务资源、调整限流策略。  笔者结合自身参与的银行系统全链路生产压测实践经验,针对全链路生产压测的适用场景、风险及难点和解决方案进行了简述及分析,为全链路生产压测的解决方案提供参考。  1、全链路生产压测适用场景  全链路生产压测适用场景广泛,主要适用于以下四种场...
            15 15 2585
            分享
          • 一、virtualenv 与 virtualenvwrapper 的安装配置pip install virtualenvwindows下virtualenvwrapper的安装pip install virtualenvwrapper-win创建一个虚拟环境存放的目录virtualenv配置环境变量cmd查看虚拟环境virtualenv命令workon 列出所有的虚拟环境mkvirtualenv [环境名称]  创建虚拟环境workon [已存在的环境名称]  切换虚拟环境rmvirt...
            0 0 2196
            分享
          •   ChatGPT已经越来越火爆,国内百度、阿里等互联网大厂也纷纷投入大模型研究,OpenAI官网中提供了许多ChatGPT应用场景,例如SQL翻译、语言翻译、代码解释等  作为一名QA,我更关注ChatGPT生成的自动化测试脚本质量如何,借助ChatGPT能否提升自动化测试编写效率。  当提到自动化测试时,我们通常将其分为单元测试、接口测试和UI测试,接下来,我们先看看ChatGPT生成的单元测试代码的质量如何。  ChatGPT辅助后补单元测试  首先,使用Spring框架编写一个简单的后端服务,服务包括两个接口:一个createUser接口和一个getUsers接口,使用“spring-...
            0 0 690
            分享
          • 读者提问:免费好用的在线 PDF 转换工具有推荐的吗 ?阿常回答:有,这 6 款在线 PDF 转换工具,免费实用,快来试试吧!1、pdftoword(支持 PDF 与 Word、TXT、图片、HTML等文件之间相互转化)官网地址:https://pdftoword.55.la2、迅捷PDF(支持文档转换、文档处理、文档翻译、图片文字识别等超多强大功能)官网地址:https://www.xunjiepdf.com3、SmallPDF(支持 PDF 转换、PDF 编辑、 PDF 处理等 PDF 管理功能)官网地址:https://smallpdf.com4、hiPDF(一站式 ...
            0 0 1636
            分享
      • 51testing软件测试圈微信