【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 起因 昨天群里看到有人问如何实现一个 ...
随机推荐
- Xamarin.Android编译提示找不到mscorlib.dll.so文件
Xamarin.Android编译提示找不到mscorlib.dll.so文件 错误信息:AOT module ‘mscorlib.dll.so’ not found: Cannot load lib ...
- Prim POJ 2031 Building a Space Station
题目传送门 题意:给出n个三维空间的球体,球体是以圆心坐标+半径来表示的,要求在球面上建桥使所有的球联通,求联通所建桥的最小长度. 分析:若两点距离大于两半径和的长度,那么距离就是两点距离 - 半径和 ...
- BFS+模拟 ZOJ 3865 Superbot
题目传送门 /* BFS+模拟:dp[i][j][p] 表示走到i,j,方向为p的步数为多少: BFS分4种情况入队,最后在终点4个方向寻找最小值:) */ #include <cstdio&g ...
- 重拾ZOJ 一周解题
ZOJ 2734 Exchange Cards 题目大意: 给定一个值N,以及一堆卡片,每种卡片有一个值value和数量number.求使用任意张卡片组成N的方式. 例如N = 10 ,cards(1 ...
- Big Event in HDU[HDU1171]
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- BZOJ4295 : [PA2015]Hazard
第i轮,a[i%n]+=b[i%m]. 枚举i,计算它变为0的次数,假设为t,那么有t=i+kn. 对于所有的i和k,(i+kn)%m形成了若干个总长度为m的环. 对于每个a[i],先在环中求出一轮最 ...
- BZOJ3789 : 扫雪车
有上下界的网络流 T向S连容量为正无穷的边,将有源汇转化为无源汇 每条边容量减去下界,设in[i]表示流入i的下界之和减去流出i的下界之和 新建超级源汇SS,TT 对于in[i]>0的点,SS向 ...
- const放在函数前和放在函数后
template < class T, class container = vector<T> > class MyClass{ private: T value; publi ...
- salt执行报错一例
执行报错: 查看服务端日志: 认证有问题 重新认证吧!!! minion端: [root@super66 ~]# cd /etc/salt/[root@super66 salt]# lsminion ...
- 移动Web—CSS为Retina屏幕替换更高质量的图片
来源:互联网 作者:佚名 时间:12-24 10:37:45 [大 中 小] 点评:Retian似乎是屏幕显示的一种趋势,这也是Web设计师面对的一个新挑战;移动应用程序的设计师们已经学会了如何为Re ...