第一步:熟悉APP启动命令
冷/热启动APP命令 :adb shell am start –W –n package/activity
比如 adb shell am start –W –n com.android.browser/.BrowserActivity (打开浏览器)
冷停止app命令:adb shell am force-stop package
热停止app命令: adb shell input keyevent 3
Activity监听:adb logcat | grep START 注意:只有在Mac上才能运行,win无法运行
第二步:打开pycharm
“#” 这是表示注释,不读这行代码
开始代码:
#/usr/bin/python
#encoding:utf-8
import csv
import os
import time
class App(object):
def __init__(self):
self.content =""
self.startTime =0
#启动App
def LaunchApp(self):
cmd ='adb shell am start -W -n com.android.browser/.BrowserActivity'
self.content=os.popen(cmd)
#停止App
def StopApp(self):
cmd ='adb shell am force-stop com.android.browser'
#cmd = 'adb shell input keyevent 3'
os.popen(cmd)
#获取启动时间
def GetLaunchedTime(self):
for linein 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","elapsedtime")]
#单次测试过程
def testprocess(self):
self.app.LaunchApp()
#打开程序后停止5秒用于加载资源
time.sleep(5)
elpasedtime =self.app.GetLaunchedTime()
self.app.StopApp()
time.sleep(3)
currenttime =self.getCurrentTime()
self.alldata.append((currenttime, elpasedtime))
#多次执行测试过程
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 SaveDataToCSV(self):
#mode='w'表示写入,encoding='utf-8' 写入格式
csvfile =open('startTime.csv',mode='w',encoding='utf-8')
writer = csv.writer(csvfile)
writer.writerows(self.alldata)
csvfile.close()
if __name__ =="__main__":
controller = Controller(3)
controller.run()
controller.SaveDataToCSV()