• 0
  • 0
分享
  • Python高级用法:自动化过滤重复bug——软件测试圈
  • 曼倩诙谐 2021-11-26 09:48:04 字数 1676 阅读 779 收藏 0

  一.背景介绍

  继自动提交bug到jira文章之后,这时候就会有人有疑问了,我每天都在跑自动化测试(美其名曰每日构建),也每天都在自动提交bug,可能昨天提交的bug尚未解决,今天又重新提了一遍,一周下来累计的bug好几千了,怎么办?一个个去手动过滤,有木有感觉直接崩溃了?那么为了解决这个问题,今天我们就来介绍一个自动化过滤的方案及其实践。

  二.测试需求分析

  此方案也主要使用python/pytest实现,主要针对于jira上bug的处理,当然也可以使用过滤重复需求,重复任务等等均可以。

  准备工作:

  1.在处理之前,你首先需要了解部门的jira流转图(不同公司或部门都可能不一样),确认清楚后,你才知道找出重复的issue之后需要怎么处理,其状态应该怎么流转,本文将主要以我具体实践的为例,若有不同,可自行修改。

  2.申请可用的jira账号(为了方便多人使用,建议申请一个公共账号)。

  三.测试用例设计

  1 获取现有的所有未处理自动化bug,具体过滤为:

  项目为xxx,报告人为xxx, 状态为未解决Unresolved(对应状态为open)。

  2 比较bug的标题和详细信息:

  比较bug的标题是否一致,若一致则比较详细描述description,如果详细描述的重复度达90%(此指标可以更改)以上则视为这样的bug重复。

  3 确认bug重复后处理:

  如果比较得出bug重复,则将重复bug(仅保留一个,其他相似的均)关闭,根据流转图(如下图),关闭最简单的流转状态就是先transit to待讨论,再转换成关闭。

1-1.png

  四.自动化脚本实现

  1 获取所有bug,可以直接使用jira接口

  /rest/api/2/search

  https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/search

  也可以python中封装好的jira(先pip install jira,即可使用)库中的 search_issues

  先获取issue总数。

1-2.png

  再根据总数 逐页遍历获取summary(标题)和description(详细描述)。

1-3.png

  2 比较issue相似度

  比较标题 直接通过 ”==“ 来判断

  比较描述通过python自带库difflib来比较:

1-4.png

  3 关闭issue

  同1,可以直接调用jira接口https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/issue-doTransition,也可以使用python中的jira库transition_issue。

1-5.png

  jira库支持的方法:

1-6.png

1-7.png

  五. 脚本迭代优化等

  1第四节脚本中主要是通过90%的重复度来判度是否重合,这个指标可以各人根据需要调整,或是通过args参数传参等。

  2本文脚本中主要是通过先转换为discuss-done的方式处理的其流转状态,若有其他不同操作可以修改transition_issue的参数。

  3 不同公司的transition_issue id不一致,此项值可以询问jira管理员或是通过http请求工具捕捉。

  六. 可能遇到的问题,难点等

  能想到此需求的话,那么此方案就木有太大难点了,主要是需要了解issue流转流程,其次可能需要了解difflib这个库。

  七. 总结

  此方案及示例可以结合自动提交bug到jira使用,也可以单独使用,因为此过滤信息并不依赖于提交issue的方式,此方案的主要流程是 获取所有issue信息(标题、详细描述等等)—比较各issue的重复信息—确定重复后,修改issue的状态(可能为关闭也可为其他,根据需要操作)。除了处理bug,也可以此方案上拓展例如分析jira上的需求、任务等等。



作者:jelly   

来源:http://www.51testing.com/html/22/n-4480022.html


2021 问卷礼物图.png

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   高通工具简介  针对高通无线通信终端(如手机、上网卡等)产品,有两大故障分析工具QXDM和QCAT。当产品出现问题时,例如:手机无法上网、手机下载速率低、手机信号差等等,需要抓取故障日志进行定位排查,此时就需要用到QXDM工具。  QXDM主要用来抓故障日志、修改终端配置、升级终端软件等。  QCAT主要用来解析日志log,这个工具可以将QXDM抓取的log解析成结构化的数据,便于开发进行快速定位故障。  自动化优势  常见的通信信令流程分析,使用QXDM和QCAT UI界面手工操作即可以做到,比如手机无法上网。  但是,比如手机下载速率低、手机信号差等问题,需要进行性能指标分析,可能包含...
            0 0 2031
            分享
          •   引言  在进入今天的内容前, 先想几个问题:  什么是测试计划?  什么是性能测试计划?  在你的性能知识领域中, 你认为性能测试计划应该包含哪些内容?  因为作为企业的金牌面试官, 经过我面试的求职者,没有四位数,至少也有个位数。无论是性能测试的小白还是高级性能测试工程师,几乎都没有认真的或者完整的去实施过性能测试计划。  其实,导致这种现在的原因,无非两种:  1、企业 不太注重 性能测试;  2、测试人员本身的能力不足。  看到这里, 你是不是会说, 你看:不是我不专业,不是我不想写专业的性能测试计划,只是我的企业对性能测试计划的要求不高。  作为一名性能测试工程师,你的专业度,一定...
            0 0 1105
            分享
          • 一、http协议的定义HTTP是超文本传输协议的缩写。是互联网上使用最为广泛的一种网络协议,适用于www服务器传输超文本到本地浏览器传输协议。它可以使浏览器的传输更加高效,使网络传输减少。他还能使计算机能快速准确的传输超文本文档。HTTP是客户端到服务端请求与应答的标准,http协议规定了超文本传输所要遵守的规则。客户端是终端用户(浏览器),服务端是网站,当服务端发起一个指定端口的HTTP请求。二、http协议特性无状态:1、HTTP协议自身不对请求和响应之间的通信状态进行保存。(即多个请求之间服务器并不知道是否是同一个客户端的请求。)无状态存在的问题:1、由于请求之间无状态保持,服务器就无法...
            0 0 1368
            分享
          • 1、selenium中如何判断元素是否存在?isElementPresent2、selenium中hidden或者是display = none的元素是否可以定位到?不能3、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?添加元素智能等待时间 driver.implicitly_wait(30)try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种4、如何提高selenium脚本的执行速度?代码优化5、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没...
            0 0 789
            分享
          • 1、什么是 FastHttpUser在介绍FastHttpUser之前,我们先看一下,Locust默认客户端使用的是啥?Locust 默认客户端使用的是python-requests。>> 如果不了解 python-requests,可以看一下小鱼的这篇:《requests库常用到的7个主要方法及控制访问参数》或者官方文档,如果有足够耐心的话:《Requests》我们接着说,使用requests是Pyhton维护非常方便的包,并且在python应用中非常广泛,栗如:爬虫,接口等。所以,官网是非常推荐我们使用HttpUser。但是,如果我们的测试规模非常大,数据量非常大,那么这个时候...
            1 1 24673
            分享
      • 51testing软件测试圈微信