【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、安全性;
【Android测试】【随笔】Bugtags初体验的更多相关文章
- 自动测试工具agitarOne 初体验之-MockingBird的使用
大名鼎鼎的AgitarOne就不用解释了,在昨天的随笔中有一些解释,今天主要说说Agitar 中Mockingbird的使用. 为了提高测试代 码的Coverage,仅仅靠Agita ...
- pytest内核测试平台落地初体验
测试平台,有人说它鸡肋,有人说它有用,有人说它轮子,众说纷纭,不如从自身出发,考虑是否要做测试平台: 第1阶段,用Python+requests写接口自动化. 第2阶段,选择unitttest或pyt ...
- Android学习之Broadcast初体验
•何为 Broadcast ? Broadcast 直译广播,接下来举个形象的例子来理解下 Broadcast: 上学的时候,每个班级都会有一个挂在墙上的大喇叭,用来广播一些通知,比如,开学要去搬书, ...
- Android学习之服务初体验
•概念 Service(服务)是一个长期运行在后台,没有用户界面的应用组件,即使切换到另一个应用程序或者后台,服务也可以正常运行: 因此,服务适合执行一些不需要显示界面的后台耗时操作,比如下载网络数据 ...
- django初体验 学习笔记
django环境搭建 1.安装Python 2.ipython sudo apt-get install ipython sudo pip instal ...
- 【Android测试】【随笔】模拟双指点击
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5258660.html 手势 看到这个标题,很多人会想一想 ...
- Android开发学习之路--百度地图之初体验
手机都有gps和网络,通过gps或者网络可以定位到自己,然后通过百度,腾讯啊之类的地图可以显示我们的地理位置.这里学习下百度地图的使用.首先就是要申请开发者了,这个详细就不多讲了.http://dev ...
- 第三次随笔--安装虚拟机及学习linux系统初体验
第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...
- 【Android测试】【随笔】模拟长按电源键
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5195121.html 起因 昨天群里看到有人问如何实现一个 ...
随机推荐
- Hierarchy视图里的Transform和Camera组件
Hierarchy视图里的Transform和Camera组件 在Hierarchy视图里,选中Camera,然后在Inspector视图里查看其各组件,如图1-8所示.对于Transform和Cam ...
- OUYA设备的购买和安装
OUYA设备的购买和安装 在为OUYA这款游戏终端做具体的开发之前,建议读者先上手感受一下这款设备的游戏体验.本节所涉及的内容包括,OUYA设备的购买.安装.设置,以及最终上手开始游戏这一系列的过程本 ...
- json学习系列(7)JSONBuilder的用法
JSONBuilder可以向文件中写入写入json字符串.如下面的例子: public class Test { public static void main(String args[]) thro ...
- TYVJ P1020 寻找质因数
做题记录:2016-08-08 描述 给出N个数字,试求质因数最大的数字. 输入格式 第一行,一个整数N,表示数字个数.接下来N行,每行一个整数A_i,表示给出的数字. 输出格式 一个整数,表示质因数 ...
- 蒟蒻修养之cf橙名计划
因为太弱,蒟蒻我从来没有上过div1(这就是今年的最后愿望啊啊啊啊啊)已达成................打cf几乎每次都是fst...........所以我的cf成绩图出现了惊人了正弦函数图像.. ...
- BZOJ3339 Rmq Problem
[bzoj3339]Rmq Problem Description Input Output Sample Input 7 5 0 2 1 0 1 3 2 1 3 2 3 1 4 3 6 2 7 Sa ...
- weblogic sockets 和 thread 问题解决
原创文章,转载须注明出处. 这个问题网上很多答案,可惜没一个能解决.后来发现是weblogic 必须适配JDK 版本. 一般会报这个错误,There are: 5 active sockets, bu ...
- nosql数据库比较
- 外部dtd
引用外部dtd的语法:<!DOCTYPE 根元素 SYSTEM “DTD文档路径”> PUBLIC:公用 SYSTEM:私有 一个xml文件: 引入一个dtd文件(注意文件的后缀是dtd)
- Servlet 编程 请求的转发
在上篇的基础上,修改servlet *转发只能在同一应用内转发. 将forward 地址改为:youku.com 不能访问 重定向是可以访问外部应用的