zoukankan      html  css  js  c++  java
  • 【Android测试】【随笔】Bugtags初体验

     版权声明:本文出自胖喵~的博客,转载必须注明出处。

       转载请注明出处:http://www.cnblogs.com/by-dream/p/5410003.html

    前言 


      早晨接到一个临时任务,就是尝试体验一把Bugtags,然后看看好不好用,大概是实现原理是什么。

      大概搜了搜发现这个工具号称 可以:   

        极速集成
          一行代码,开启高效测试
        所见即所得提交
          在你的应用中直接提交 Bug,方便快捷
        自动记录运行时数据
          界面截图、设备信息、控制台日志、操作步骤,一项也不少
        全民参与测试
          测试零门槛,产品经理、设计师、客服都能快速参与

      看介绍如此牛逼,于是本喵决定给大家介绍一下这个工具

    工具简介


      首先还是老样子,贴出他们官网地址: https://www.bugtags.com/

     

    一、注册

      填写自己的邮箱,姓名,密码,绑定手机后就可以啦。注册成功后,我们新建一个项目:


      因为本人对Android比较了解一些,我们暂时先选择Android这个平台来实践。

      申请完成后,我们可以看到左下角有一个应用信息的区域,红色方框标出App key需要在代码中用到,这里我们先标记出来一下

      

    二、下载demo

      添加完成之后,网页端的东西就这么多。于是觉得先下载他们的demo体验一下是否好用吧。 ( demo地址:https://docs.bugtags.com/zh/start/integrate/index.html )

      下载完成导入Eclipse工程,如下:

      注意这里一共两个工程:第一个就相当于我们自己的App,第二个Lib就是我们在自己的App需要引入的工程。

      代码引入后没报错,直接编译一个到手机上看看效果。  

    三、编译

      编译打包后,进入App,如下图所示

      右边的小球,就是我们加入Bugtags的lib之后出现的一个小悬浮窗,点开之后只有两个按钮,操作简单不复杂。

      第二个按钮是提交bug的按钮,一会介绍,第一个是登录按钮,我们用我们注册的邮箱进行登录,此时会提示 "该App没有加入到你的项目"之类的话,想想也是,我也没做什么呢,应该和我的平台关联不起来。

    四、一行代码

      还记的第一步我们在网站上看到的应用的信息吗?

      这里App Key就起到了关键的作用。我们需要在当年你的App的工程的Application中加入那所谓的一行代码(如下图):

      这样我们就将这个App和我们的网站关联起来了。

      

    五、登录

      登录成功后,可以看到我们的网站中的头像同步到了App中


    六、提Bug

      接下来说说刚才我们没讲到的 “第二个按钮(笔和加号)”,点击此按钮之后,屏幕被截屏了,此时出现一个对话框:

      可以提交bug和建议,并且可以设置bug的等级,以及关注人和bug的描述,完成这些内容后,屏幕上便出现了这个bug的一个描述,当然你可以拖动它或者改变它的一个方向。

      当调整好后,我们遍提交这个bug,点击对号即可提交:

    七、展示

      提交完bug后,我们去web端平台去看看:

      整体来看,在三个区域多出了一些信息,我们点进去看看究竟提交上来的信息都包含些什么:

      Ⅰ 设备信息

        从内容上看,拿到了一些基本的设备信息,这个不是很难,相信做过一点Android开发的同学应该都知道怎么获取这些东西,因此这里就不再赘述了。

      Ⅱ 用户数据

        这里可以自定义的取到一些当时代码中运行的一些变量的值,一般开发在定位问题的时候通常需要这些数据。这里需要开发在代码中调用API,然后将自己关心的参数给set上去,set的形式就是一个key-value的形式,如下:

      我在这个页面初始化的地方加入了我关心的三组数据,当我在这个页面提交bug的时候,就会把这三个信息给我带上来:

      Ⅲ 操作步骤

        首先说明一下,后面的一些内容都是面向企业版(要收费)的内容,而我的是个人版,因此这里看不到我自己实时传上来的,但是可以看到他们上传上来的一个大概的样式

        如图所示,我们可到Activity的生命周期的一个过程,以及控件的消息事件。那么它是怎么捕获到我的这些内容的原因是什么呢?答案就在下方:

        没错,你需要在重写你的这个函数之后,在里面加入Bugtags的一段代码,对于Activity而言,需要在所有的Activity中实现,如果没有一个基类的Activity,我相信工作量应该是蛮大的。

      Ⅳ 控制台日志

        这个没什么好说的,获取的就是Logcat中的命令,对Logcat还不清除的同学,可以看我的Logcat的博客。

      Ⅴ Bugtags日志

        这个日志和Logcat的去吧在于,它也是通过API的方法来调用,但是不会出现在Logcat中。这里我个人认为:用户数据、logcat日志、bugtags日志其实都是上传一些信息上来,没有要绝对分开的必要,使用其中一个即可完成,但是如果你想按分类上传的话,当然这也是一个好的接口提供方法。

      Ⅵ 网络请求

        这项功能可以统计到当前应用的所有http的请求,这里可以说一说。目前我们市面上针对网络的捕获都是采用抓包的策略,无论是tcpdump或者是fiddler他们抓取的都是对整个手机网络的一个捕获,不能细化到应用级别。而Bugtags使用hook技术并且对市面上一些网络库(例如okhttp、 android-async-http)也采取对应的处理,因此可以精准到抓取应用级别的一个网络请求。

      Ⅶ 发生崩溃

        除了前面提到的一个Bug提交后可以看到的信息,该平台还可以自动捕获崩溃信息。这里demo中提供了一个模拟发生崩溃的按钮

        点击之后应用发生崩溃,我们去系统中可以看到步骤到了堆栈信息:

        至于如何捕捉到崩溃异常,有兴趣的可以看看 UncaughtExceptionHandler 。这里有我同事在github上写的demo:https://github.com/DrJia/AndroidLogCollector

        对于同类型的崩溃,平台也做了汇总,可以看到崩溃的一个影响范围

        以上大概就是我对Bugtags简单使用和理解

    个人评价


      截至目前为止,我认为这是我见过的比较好的平台了,不管是易用性、丰富性、美观性,个人都觉得不错,当然也有一些值得改进的地方,下面是个人总结:

      优点:

        1、可以便捷的提交UI性bug;

        2、bug管理平台比较完善(还可以自动生成报表);

        3、自动捕获异常功能比较出彩;

        4、捕获网络请求数据比较出彩;

      待改进:

        1、Fragment或者其他一些自定义布局的生命周期无法捕获;

        2、提交bug适合于静态页面UI的错误类的bug,不适合复杂操作的逻辑性bug提交;

        3、无法捕获到操作第三方步骤(例如拉起微信登录);

        4、需要两个手机完成的不太适合(例如闲鱼,需要买卖双方来完成操作);

        5、记录详细的步骤时,开发是否愿意维护这些代码;

        6、安全性;

  • 相关阅读:
    RecyclerView,ListView first item get focus
    一种粗暴快速的Android全屏幕适配方案(转)
    谈谈单元测试之(一):为什么要进行烦人的单元测试(转)
    SCIgen与野鸡期刊的梗
    百度搜索仍然是【最快解决工作问题的方法】
    搭建minima主题的github博客网站
    本科期间的第一个专利:改卷筒的故事
    学习消费思维的【贫穷与富有】
    我的联系方式
    学习 GitHub 有什么好处?
  • 原文地址:https://www.cnblogs.com/by-dream/p/5410003.html
Copyright © 2011-2022 走看看