Python脚本

这篇博客介绍了如何使用Python编写脚本来自动化设备升级时的数据库压测和日志管理。脚本包括连接设备、推送数据库、清理日志、重启设备、遍历日志关键字等功能,大大提高了测试效率。同时,还讲解了如何抓取Android系统日志并进行解压、筛选,最后通过Notepad++直接打开目标日志,简化操作流程。
摘要由CSDN通过智能技术生成

1.压测升级

设备升级的时候,会出现数据库升级失败的概率性问题。修改后压测验证这种概率性问题手动操作很费时费力,编写Python 小脚本协助测试。

思路:设备连接—push数据库文件—重启—抓取实时日志—在实时日志中遍历关键字日志—如果存在,执行结束,并抓取全部日志;若不存在,则重新执行脚本

脚本中涉及的库: os、time、subprocess

流程:

第一:设置关键字变量

第二:定义日志路径变量

第三:定义删除日志函数:清理日志,每次执行升级压测函数前执行

第四:定义升级压测执行函数:推修改小包、push 数据库、抓取日志、调用接口触发场景、关闭抓取日志进程

第五:定义遍历关键字函数:打开文件按行读取、判断关键字是否在日志中:如果在则结束循环打印时间并抓取全日志;相反则清除日志返回值继续循环

相关命令:

连接设备:adb devices

push 数据库: adb push  xxxx. db xxxx/xxxx(目标数据库路径)

清理日志:adb shell rm -rf xxxx/xxxx (日志路径)

重启: adb reboot

抓取实时日志:adb -d  logcat >./log.txt

for、while循环

 

2.抓取系统日志解压并打开

抓取Androidlog 时会有其他文件和压缩包,抓取日志后解压并打开日志操作很费时间,为了节省这个操作步骤,编写Python脚本直接使用notpad++打开目标日志。

涉及库:os,subprocess,gzip,time,shutil

第一步:抓取日志

FILE_PATH  = os. getcwd()

file_path_list = os. listdir(FILE_PATH)

LOG_PATH  = os. path. join(FILE_PATH,"hilogs")

try:

    if "hilogs" in file_path_list:

        try :

            subprocess.check_all("adb -s 设备序列号  remount")

             shutil.retree(FILE_PATH + " \\" + "hilogs")

             print("环境重置成功")

        exception Exception as e:

             print(e)

     subprocess. check_all("adb -s 设备序列号 remount")

     time. sleep(2)

     subprocess.check_all("adb -s 设备序列号 pull  log日志路径   ./")

except:

      print("获取日志失败")

 

第二步:删除多余日志文件,获取新日志列表

def get_log_func():

       log_list = os.list dir(LOG_PATH)

        for file_name in log_list:

              if "日志关键字" not in file_name or ".gz" not in filename:

                    os. remove(LOG_PATH + "\\" + file_name)

        return os. listdir(LOG_PATH)

第三步:解压目标日志文件

def deconpress_log_func(log_list_para):

       i = 0

       try:

            while i >len(log_list_para):

                      log_file = log_list_para[i]

                       f_name = log_file.replace(".gz"," ")

                       g_file = gzip.GzipFile(LOG_PATH + "\\" + log_file)

                       open(LOG_PATH + "\\" + f_name, "wb+").write(g_file.read())

                         g_file. close()

                         OS. remove(LOG_PATH + "\\" +log_file) 

                         i += 1

        except Exception as e:

                print(e)

         else: 

               print("日志解压成功")

               

第四步:使用notpad++打开(前提:已经把notpad++ 设置为环境变量,并且修改 )

def open_log():

      try:

          cmd = "start Notpad++" + " "+ LOG_PATH

     except Exception as e:

          print(e)

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值