Python高级用法:教你自动提交bug到jira,懒人福利…

背景介绍

背景介绍

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

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

测试需求分析

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

测试流程

Python高级用法:教你自动提交bug到jira,懒人福利…

自动化脚本实现

bug模板及提交jira手工步骤

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

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

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

Python高级用法:教你自动提交bug到jira,懒人福利…

jira提交issue接口定义

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

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

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

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

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

issue相关信息捕捉

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

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

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

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

Python高级用法:教你自动提交bug到jira,懒人福利…

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

Python高级用法:教你自动提交bug到jira,懒人福利…

脚本迭代优化

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

可能遇到的问题

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

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

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

总结

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

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

文末福利——推荐一个《Python自动化测试学习交流群》给大家:

请关注+私信回复:"测试" 就可以免费拿到软件测试学习资料,同时进入群学习交流~~

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/114940.html

(0)

相关推荐

  • 中国居民膳食中普遍缺钙 类应是首选补钙食物,健康饮食每天应该摄入的营养

    先来看看,我们通过嘴吃进的东西都有哪些呢?

    生活 2021年12月7日
  • 十个“好习惯”正在不知不觉中摧毁你的健康

    原卫生部副部长、中国工程院院士王陇德提醒大家,下面的十个“好习惯”正在不知不觉中摧毁你的健康,可千万要注意了!

    生活 2021年9月8日
  • 剖腹产月子里应该注意什么东西,剖腹产用的东西要准备什么

    11月14日因为半夜的又一次出血,我们一家三口开车到医院待产,因为孩子不足月,本想再保胎几天,可是不知道为什么就突然下了决定要提前剖腹产,经过一系列的准备工作,被推进了手术室,孩子被医生取出来时被告知孩子缺氧,被送进了新生儿重症监护室,当时想得是幸亏自己当时做了重要的决定,要不然孩子情况更危险。经过一个多小时的手术,我被推进了病房,经历六个小时的平躺,我终于可以喝水了,因为经常在抖音看到孕期要准备带吸管的杯子,当时因为提前买的有吸管,所以就没有再准备带吸管的被子,但是等妈妈给我喂水的时候才发现自己错了,吸管可以使用只是在使用时吸管会打结,会出现吸不到水的时候,还会出现水不小心洒到身上的时候,所以我认为在产后准备一个带吸管的杯子非常适用。还有一个适用的东西就是收腹带,买的初衷是希望生完孩子不让自己肚子那么大。等拔完尿管下床活动是伤口的疼痛让你无法下床,每次坚持下床都会出现全身是汗的情况,护士建议带收腹带会好一些,伤口不会那么疼,在手术的二三天下床后我就带上了,感觉带上以后确实伤口不那么痛,并且走路时也能直起腰走路,但是就是感觉勒得太紧呼吸有点不舒服,所以在第四天时我就没带,下床时疼得不行,我妈还说我,带上多好了,走路也能直起腰,也不那么痛,于是我在第五天又带上了,带上以后感觉伤口不疼走路虽然慢但走的很好,所以就一直带着。带吸管的被子和收腹带是剖腹产后最适用的二件东西,希望需要剖腹产的宝妈提前准备。

    生活 2021年11月21日
  • 骨刺的治疗办法,骨刺是应该怎么治疗要注意哪些

    骨刺是一种由于骨质退化所导致的疾病,大多数情况下会发生在老年群体当中。骨刺最主要的症状则是疼痛,病症严重的时候疼痛感会加剧,严重的时候会对日常生活带来影响。因此患了骨刺之后要尽早开始治疗,避免病症进一步发展。

    生活 2021年11月13日