python-appium监测APP启动用时

需求:模拟用户打开APP的操作,记录启动用时

# -*- coding: utf-8 -*-
# @Author  : sunyue

'''
本脚本测试app的单个冷启动时间
整体思路:启动前记录当前时间,启动后识别到目标控件记录当前时间,两次时间相减即为启动时间
'''

from appium import webdriver
from datetime import datetime
import time
from selenium.webdriver.support.ui import WebDriverWait

class bv_start:
    def platform(self, Version, Package, Activity):
        desired_caps={}
        desired_caps['platformName'] = 'Android'      #平台名称
        desired_caps['deviceName'] = 'aaa'         #设备名称
        desired_caps['platformVersion'] = Version     #平台版本
        desired_caps['appPackage'] = Package              #包名
        desired_caps['appActivity'] = Activity             #包入口
        desired_caps['noReset'] = True                 #不重置状态
        driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)  #启动服务/通过4723端口来建立一个会话
        self.driver = driver
        time.sleep(3)       #等待3s

    def execute(self, t, name, check):
        '''
        :param t: 表示需要测试的次数,
        :param name:测试应用安装在手机上后在手机上显示的应用名称
        :param check:识别的控件,设置需要识别的控件,识别到就记录当前时间
        '''
        self.driver.keyevent(3)
        Total_time = []
        for i in range(t):
            WebDriverWait(self.driver, 60).until(lambda x: x.find_element_by_android_uiautomator('new UiSelector().text("%s")'%(name)))
            self.driver.find_element_by_android_uiautomator('new UiSelector().text("%s")'%(name)).click()      #点击启动APP
            start_time = datetime.now()                #获取启动前用时
            while True:                           #循环的查找界面上的控件直到找到需要的停止并记录时间
                Str = self.driver.page_source
                keyword = check
                if keyword in Str:
                    last_time = datetime.now()               #获取启动后用时
                    break
            t = last_time - start_time          #得到总用时
            rt = str(t).split(":")               # 通过split函数对总用时进行切割,用来提取秒和毫秒,产生一个列表rt
            a = int(rt[1]) * 60                         # 提取分钟
            r = float(rt[2])                            # 提取到秒和毫秒
            run_time = a + r
            Total_time.append(run_time)
            self.driver.keyevent(3)
        print(Total_time)
        
if __name__ == "__main__":
    wb = bv_start()
    wb.platform('9', 'com.google.android.apps.messaging', 'com.google.android.apps.messaging.ui.ConversationListActivity')
    wb.execute(5, '微博', '首页')    	#测试5次求平均值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Python-Appium自动化测试是一种基于Python语言和Appium框架的自动化测试方法,用于测试移动应用程序的功能和性能。它可以模拟用户在移动设备上的操作,如点击、滑动、输入等,以验证应用程序的正确性和稳定性。同时,Python-Appium自动化测试还可以生成测试报告和日志,帮助开发人员快速定位和解决问题。 ### 回答2: Python-Appium自动化测试是使用Python开发语言与Appium工具结合实现的一种移动应用自动化测试方法。Appium是一个跨平台的开源自动化测试框架,可用于Android和iOS应用测试,同时它也支持多种编程语言,其中包括PythonPython作为一种易学易用的脚本语言,对于自动化测试方面来说,有着很好的应用场景。 Appium的优势在于它实现了"一次编写,随处运行"的理念,即一套测试脚本可以同时运行在Android、iOS甚至是Windows平台的设备上,提高了测试效率和覆盖率,同时也减轻了测试人员的工作量。此外,Appium还具有很好的可扩展性和兼容性,可以支持多种测试框架的集成。 在Python-Appium自动化测试中,主要需要掌握Appium的API接口,通过Python脚本实现对应用的UI元素进行定位、控制、操作和验证等测试动作。通过使用Python编写测试用例,可以在测试过程中调用Appium的API接口,实现自动化测试,进而提高效率,减少测试成本。 总结起来,Python-Appium自动化测试是一项非常有意义和优越性的技能,能够帮助测试人员更加高效地完成移动应用自动化测试任务,更好地提升开发效率和质量。然而,在学习和应用Python-Appium自动化测试技术时,也需要充分考虑到应用的安全性和稳定性,以确保测试结果的准确性和可信度。 ### 回答3: Python-Appium自动化测试是使用Python编程语言和Appium测试框架来进行自动化测试的一种方法。Appium是一个开源的跨平台的移动应用自动化测试框架,可以实现在不同的移动操作系统(如iOS和Android)上进行测试。而Python是一个简单易学的编程语言,也是非常流行的测试工具之一。因此,使用Python-Appium自动化测试是一种非常强大且易于操作的自动化测试方法。 Python-Appium自动化测试的主要优势在于它可以提高测试效率和精度。由于测试人员不需要手动执行测试,他们可以通过编写测试脚本来自动执行测试。这些脚本可以被重复使用,可以快速地测试不同的场景,并且可以在不同的设备和操作系统上进行测试。 另外,Python-Appium自动化测试还可以提高测试的精度。因为这种自动化测试方法是由计算机执行的,所以它不会因为人为疏忽或者错误而产生测试错误。它可以帮助测试人员减少任何可能的误差,并且可以帮助他们快速识别出与应用程序相关的问题,从而更快地修复这些问题。 总的来说,在Python-Appium自动化测试方面有很多的应用场景,它可以帮助测试人员和开发者快速且准确地识别出与应用程序相关的问题,从而帮助他们更快地修复这些问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值