zoukankan      html  css  js  c++  java
  • python实现APP自动化

    # /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 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", "elapsedtime")]

    # 单次测试过程
    def testprocess(self):
    self.app.LaunchApp()
    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

    # 数据存储到CSV中
    def SaveDataToCSV(self):
    csvfile = open('Test_startTime.csv', 'w')
    writer = csv.writer(csvfile)
    writer.writerows(self.alldata)
    csvfile.close()


    if __name__ == "__main__":
    controller = Controller(3)
    controller.run()
    controller.SaveDataToCSV()
  • 相关阅读:
    Java多线程编程初识— —2
    Java多线程编程初识
    Java XML解析技术
    Java读取Properties文件的六种方法
    Java对象的序列化与反序列化
    文言写作
    阅读理解主题综合训练
    记叙文阅读的六大题型详解(全部转换成法事情人"法事情人")
    读书类、美景类作文
    开头技法
  • 原文地址:https://www.cnblogs.com/wsfsd/p/11038947.html
Copyright © 2011-2022 走看看