• 第二章-Python 实现 获取app 冷热启动时间脚本


    首先先回顾一下部分需要使用到的adb命令

    adb devices 查看连接设备
    adb shell "logcat | grep START" 查看监听
    adb shell am start -W -n +包/包ity 启动app 并且 查看时间
    adb shell am force-stop +包名 关闭app
    adb shell input keyevent 3   home 键返回
     
     
    代码如下
    #/usr/bin/python
    #encoding:utf-8
    import os
    import time
    import csv


    #app类


    class App(object):
    def __init__(self):
    self.content=''
    self.startTime = 0
    # 启动app
    def LaunchApp(self):
    cmd = 'adb shell am start -W -n io.dcloud.com.chuanyuankj.yibaoqrcode/io.dcloud.PandoraEntryActivity '
    self.content=os.popen(cmd)
    #停止app
    def StopApp(self):
    cmd = 'adb shell am force-stop io.dcloud.com.chuanyuankj.yibaoqrcode'
    os.popen(cmd)
    #获取启动时间
    def GetTime(self):
    for line in self.content.readlines():
    if "ThisTime" in line:
    self.startTime = line.split(":")[1]
    break
    return self.startTime


    #控制类
    class Controller(object):
    def __init__(self,count):
    self.app = App()
    self.counter = count
    self.alldata =[("timestamp","elpasetime")]

    #单次测试过c
    def testprocess(self):
    self.app.LaunchApp()
    time.sleep(5)
    elpasetime=self.app.GetTime()
    self.app.StopApp()
    time.sleep(3)
    currenttime = self.getCurrentTime()
    self.alldata.append((currenttime,elpasetime))

    #多次执行测试过程
    def run(self):
    while self.counter > 0 :
    self.testprocess()
    self.counter = self.counter - 1

    #获取当前时间戳
    def getCurrentTime(self):
    currentTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    return currentTime

    def SaveDataCSV(self):
    csvfile =open('startTime22.csv', 'w',encoding='utf8',newline='')
    writer = csv.writer(csvfile)
    writer.writerows(self.alldata)
    csvfile.close()

    if __name__ == '__main__':
    controller = Controller(10)
    controller.run()
    controller.SaveDataCSV()

  • 相关阅读:
    从 Objective-C 里的 Alloc 和 AllocWithZone 谈起
    设计模式(26)
    iOS目录结构
    IOS didReceiveMemoryWarning 的那些事
    iOS多线程编程:线程同步总结
    我要进大厂之大数据Hadoop HDFS知识点(2)
    我要进大厂之大数据Hadoop HDFS知识点(1)
    我要进大厂之大数据ZooKeeper知识点(2)
    我要进大厂之大数据ZooKeeper知识点(1)
    rabbitmq使用延迟时报异常
  • 原文地址:https://www.cnblogs.com/yyjiangnan/p/6700068.html
Copyright © 2020-2023  润新知