【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、安全性;

 

posted @ 2016-04-19 20:38  胖喵~  Views(5963)  Comments(0Edit  收藏  举报