zoukankan      html  css  js  c++  java
  • Android App性能测试之2:启动时间

    获取启动时间步骤:

    1、设置sdk+python环境

     

    2、为了获取App的包(package)名,在cmd输入adb logcat | grep START启动监控指令

     

    3、打开App,在cmd查看新增的记录中寻找cmp="com.xxxxx"/.xxxx.xxxActivity,引号里是包名

     

    4、输入启动App命令adb shell am start -W -n package/activity,ThisTime的值就是启动时间

     

    5、输入停止App命令adb shell am force-stop package(注意:没有activity),这时App退出——冷启动

    #5、输入退到后台命令adb shell input keyevent 3,相当于Back或Home键暂停App(退到后台)——热启动

    6、重复10次,取除了第1个的时间之外的9个值取平均值做图表分析

    脚本如下:

     1 #encoding:utf-8
     2 import os
     3 import time
     4 import csv
     5 
     6 #App类
     7 class App(object):
     8     def __init__(self):
     9         self.content = ""
    10         self.startTime=""
    11     #启动App
    12     def LaunchApp(self):
    13         cmd = "adb shell am start -W -n com.android.browser/.BrowserActivity"
    14         self.content = os.popen(cmd)
    15     #停止App
    16     def StopApp(self):
    17         cmd = "adb shell am force-stop com.android.browser"
    18         os.popen(cmd)
    19     #获取启动时间
    20     def GetLaunchedTime(self):
    21         for line in self.content.readlines():
    22             if "ThisTime" in line:
    23                 self.startTime = line.split(":")[1]
    24                 break
    25         return self.startTime
    26 
    27 #控制类
    28 class Controller(object):
    29     def __init__(self,count):
    30         self.app = App()
    31         self.counter = count
    32         self.alldata = [("timestamp","elapsedtime")]
    33 
    34     #单次测试过程
    35     def testprocess(self):
    36         self.app.LaunchApp()
    37         time.sleep(5)
    38         elapsedtime = self.app.GetLaunchedTime()
    39         self.app.StopApp()
    40         currenttime = self.getCurrentTime()
    41         time.sleep(3)
    42         self.alldata.append((currenttime,elapsedtime))
    43 
    44     #多次执行测试过程
    45     def run(self):
    46         while self.counter > 0:
    47             self.testprocess()
    48             self.counter = self.counter - 1
    49 
    50     #获取执行的当前时间
    51     def getCurrentTime(self):
    52         currentTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    53         return currentTime
    54 
    55     #数据的存储
    56     def SaveDataToCSV(self):
    57         csvfile = open("startTime1.csv","w")
    58         writer = csv.writer(csvfile)
    59         writer.writerows(self.alldata)
    60         csvfile.close()
    61 
    62 if __name__ == "__main__":
    63     controller = Controller(10)
    64     controller.run()
    65     controller.SaveDataToCSV()
  • 相关阅读:
    ZOJ 1002 Fire Net
    Uva 12889 One-Two-Three
    URAL 1881 Long problem statement
    URAL 1880 Psych Up's Eigenvalues
    URAL 1877 Bicycle Codes
    URAL 1876 Centipede's Morning
    URAL 1873. GOV Chronicles
    Uva 839 Not so Mobile
    Uva 679 Dropping Balls
    An ac a day,keep wa away
  • 原文地址:https://www.cnblogs.com/hlphlp/p/6771617.html
Copyright © 2011-2022 走看看