禅道项目管理软件bug过滤脚本

发表于:2018-12-28 16:20

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

 作者:liusaint1992    来源:思否

  新公司使用禅道作bug管理系统。每次产品上线的时候,所有的测试人员测试出bug之就就提在禅道上。
  由于我们公司目前的测试只有一个,就把很多产品拉来凑数。他们分不清bug和需求。所以往往出现的情况是一大屏的bug。但实际上能改的没几个。并且有很多bug是后端的。
  要从那么多bug中找出来自己能改的,每次都要从那么多bug中来看,往往看得眼都花了,也没找出来几个有效bug,偏偏又不能处理掉,因为其他人可能要看。
  于是决定花点时间写个脚本来帮我处理一下那些干扰信息。把那些我不需要看到的条目隐藏起来。
  要在bug列表table每一行加一个隐藏按钮。点击的话会隐藏掉该行。并且把该行的checkbox的value值记录到localStorage中。
  在console控制台运行脚本,会做这几件事:
  1.给table所有的a标签加属性target="_blank",这样就会到新页面打开bug详情。避免本页跳转导致脚本失效。
  2.把所有tr行中的checkbox的值放到该tr上。data-id属性中。方便后续操作。
  3.每行加一个隐藏按钮。并给它绑定事件。点击按钮隐藏此行。把最后一个td加长。
  4.把localStorage保存的所有值的行隐藏起来。
  为了避免翻页引起页面跳转。先要把每一页的数量调大一些。这样操作就在同一个页面上,不需要多次运行脚本了。
  原来的bug可能有这么多:
  运行脚本之后的效果(很多条干扰信息已经被我隐藏掉了):
  可以看到每一行的右边都加了一个隐藏按钮。我们看过bug之后觉得是自己不用理会的。就可以点击隐藏。
  并且下次打开页面再次运行脚本,你之前隐藏过的就会自动隐藏起来。
  这样就能很大程度上减少干扰信息了。
  另外,这个代码通用性也是比较强的。换一个系统,要实现类似的功能只需要稍作改动就可以。
  下面是代码:
   function CD(){}
  CD.prototype = {
  init:function(){
  this.open();
  this.hideItems();
  this.bindEvent();
  },
  open:function(){
  //所有a标签新标签打开
  $("td a").attr('target','_blank');
  //给每一行加一个我们的按钮。
  $(".s-hide").remove();
  $("tr.text-center td:last-child").append('<span class="s-hide" style="margin:0 5px;cursor:pointer;">隐藏</span>');
  $("tr th:last").width(170);
  //给tr加上id。方便操作
  $("tr").each(function(index, el) {
  $(this).attr('data-id',$(this).find("input:checkbox").val());
  });
  },
  bindEvent:function(){
  //点击隐藏。
  $("body").on('click', '.s-hide', function(event) {
  var id = $(this).parents('tr').find("input:checkbox").val();
  var hideStr = localStorage.hideStr || '';
  var hideArr = hideStr.split("-");
  hideArr.push(id);
  localStorage.hideStr = hideArr.join("-");
  $(this).parents("tr").hide();
  });
  },
  //初始化的时候隐藏我们隐藏过的。
  hideItems:function(){
  var hideStr = localStorage.hideStr || '';
  var hideArr = hideStr.split("-");
  var len = hideArr.length;
  for (var i = 0; i < len; i++) {
  $("tr[data-id="+hideArr[i]+"]").hide();
  }
  },
  //显示隐藏的。
  show:function(){
  localStorage.hideStr = '';
  $("tr").show();
  }
  }
  //调用
  var cd = new CD;
  cd.init();
  // 显示全部请手动调用  cd.show();
  嗯,JavaScript能做的事实在太多。
  面对别人的网站,我们也可以大有可为。
  很多浏览器插件,其实也是在别人的网站上运行自己的脚本实现 一些操作。比如拦截广告。抢月饼。
  作为一个前端程序员来讲,顺手写几行脚本提高一点工作效率也是不错的。

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号