zoukankan      html  css  js  c++  java
  • 压力测试之python自动化实践

               压测app:启动时间,cpu,流量,电量,内存,fps,过度渲染

     
    环境的配置
    1. Android SDK   2. Python  3.pyCharm
     
    1. Android SDK  
    下载网址:http://www.androiddevtools.cn/index.html
    环境变量:             ANDROID_HOME:D:AppiumAndroid Sdkandroid-sdk
                                  PATH:D:AppiumAndroid Sdkandroid-sdkplatform-tools
                                              D:AppiumAndroid Sdkandroid-sdk ools
    添加完环境变量后,链接真机,输入  adb devices  有输出,判断android sdk 添加成功
    2.python  
      下载地址:https://www.python.org/downloads/
    3.pyCharm   直接下载安装
     
    获取app的包名和activity名 : adb shell "logcat | grep START"  然后启动app  找到 cmp="com.zgjky.app/.activity.welcomepage.Welcome_Activity”

    启动时间:
    冷启动:程序(进程)首次启动    热启动:程序(进程)推到后台        
    # encoding:utf-8
    import csv
    import os
    import time
    #APP类

    class App(object):
    def __init__(self):
    self.content = ""
    self.startTime = 0

    def LaunchApp(self):
    #启动APP
    cmd = "adb shell am start -W -n com.zgjky.app/.activity.welcomepage.Welcome_Activity "
    self.content= os.popen(cmd)

    def StopApp(self):
    #停止APP
    cmd = "adb shell am force-stop com.zgjky.app"
    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","elpasedtime")]

    #单次测试过程
    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

    #数据的存贮
    def SaveDataToCSV(self):
    csvfile = file("startTime.csv","wb")
    writer = csv.writer(csvfile)
    writer.writerows(self.alldata)
    csvfile.close()

    if __name__ == "__main__":
    controller = Controller(11)
    controller.run()
    controller.SaveDataToCSV()
           遇到问题:当执行程序后,app启动一次,然后就没有然后了
              分析:csv文件,在python3.6中运行错误导致
                      
                                
                                  
     
    print(''' ▶ 学编程,你不是一个人在战斗 | __--__|_ II=======00000[/ ★101___| _____\_______|/-----. /___mingrisoft.com____| ◎◎◎◎◎◎◎ © / ~~~~~~~~~~~~~~~ ''')
  • 相关阅读:
    怎么重新启动网卡
    @JsonProperty的使用
    JAVA中的反射机制
    spring的IOC入门案例
    spring的IOC底层原理
    maven+Spring环境搭建
    SpringMVC与Struts2区别与比较总结
    Struts2面试题
    oracle自增序列创建
    Hibernate分页查询报错
  • 原文地址:https://www.cnblogs.com/1109v/p/9293675.html
Copyright © 2011-2022 走看看