关闭

一键分析Android的BugReport

标签: android测试调试
1858人阅读 评论(0) 收藏 举报
分类:

在Android系统测试中,经常要抓取log,而内置的BugReport功能无异是最方便全面的。那么问题来了,BugReport包含的信息虽多,但分析起来就成了麻烦,当然觉得麻烦的不只我一个,还有space2。这位前辈为此写了一个名为chkbugreport的开源工具,可以直接把对BugReport进行分析,好吧,我的麻烦被别人解决了。同时受同事启发,把chkbugreport工具做了个强化,实现一键分析BugReport ^_^,非常简单,就是把获取BugReport和分析BugReport一起实现,全当拿Python练练手。

前提:

  1. 已配置java环境
  2. 下载chkbugreport.jar(下载后请名字改成chkbugreport.jar)

方法:

  1. 将下面的代码保存到chkbugreport相同目录
  2. 运行
  3. # -*- coding: utf-8 -*
    import os
    from subprocess import Popen, PIPE




    def devices():
        '''
        获取设备信息,根据不同状态给出返回值
        1. 未连接设备时,返回值为 0
        2. 已连接仅一台设备时,返回值为 1
        3. 已连接多台设备时,返回值为 2
        '''
        resp = Popen(
            'adb devices', shell=True, stdout=PIPE, stderr=PIPE).stdout.readlines()
        cmd = []
        for i in resp:
            cmd.append(i.strip('\r\n'))


        if cmd[-2] == cmd[0]:
            print ('...... Devices not fond ......')
            return 0
        elif len(cmd) > 3:
            print ('...... Fond %s devices ......' %
                   (len(cmd) - 2))
            return 2
        else:
            print ('...... Device is fond ......')
            return 1




    def analysis_bugreport():
        '''
        获取Bugreport,并进行分析
        '''
        print 'getting bugreport......'
        os.system('adb shell bugreport > %s\\bugreport.log' % os.getcwd())
        print 'Got it.'
        # Bugreport
        os.system('java -jar chkbugreport.jar bugreport.log')
        print 'Analysis complete.'


    if __name__ == '__main__':
        if devices() == 1:
            analysis_bugreport()
        # raw_input('Press Enter key to continue......')
  4. 国际惯例,感谢space2,还有我的同事郑 虹向我推荐chkbugreport。
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19937次
    • 积分:503
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:9篇
    • 译文:0篇
    • 评论:2条
    文章分类