Appium 关于 App 启动时间测试的问题

秃头修炼者 · 2020年08月24日 · 最后由 Aiden 回复于 2020年08月26日 · 3999 次阅读

公司出现一个一个任务就是:计算 App 从点击后到完全打开时的启动时间。一直是安排人工手动去录制然后一帧一帧的去回放,但是现在由于业务过多公司,想要改成自动化,需要精确到 秒数后两位。下面这段代码是我练习的时候用 selenium 做的(想用 Appium 去做),做出来的时间与 手动看帧数的时间差 2s 左右。想问一下大佬们这是为什么 。(ps:本人有点小困惑,是否 在 第一个 starttime 的时候 会有一个内置时间来 进行 打开浏览器操作。或者 内置时间 进行点击操作(只是纯粹的猜测,源码还未观看))

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import datetime
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
dt_start = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
input_element = driver.find_element_by_id("kw")
sleep(3)
if WebDriverWait(driver, 5, 0.5)\
    .until(EC.presence_of_element_located((By.ID,"kw")),"这个元素出来了"):
    dt_end = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    print("差值:" , float(dt_end.split(":")[-1]) - float(dt_start.split(":")[-1]))
driver.quit()
最佳回复

我是用 stagesepx 方法做"App 页面跳转性能"分析的,误差控制的非常好。可以参考下我写的帖子,帖子里有分析 App 启动耗时的例子。
https://blog.csdn.net/wsc106/article/details/107351675

共收到 14 条回复 时间 点赞
仅楼主可见

我是用 stagesepx 方法做"App 页面跳转性能"分析的,误差控制的非常好。可以参考下我写的帖子,帖子里有分析 App 启动耗时的例子。
https://blog.csdn.net/wsc106/article/details/107351675

秦岭 回复

我现在也是 不太了解 appium 查找元素 是否需要时间,今天我查找一下资料,如果找到了,会给你回复。

我们这边 客户要求是在 第一帧画面加载完毕就结束。与多个较流行的软件进行对比 第一帧的产生时间。

Aiden 回复

您的这一个 很厉害,我在找资料的时候也看见过,也学习过。还需要继续学习,确实有些地方我看不懂。有问题还是想像您请教

方便上传一个第一帧加载完毕的 也就是贵司认可的启动完成的图吗,想参考一下截止的一个大概界面,谢谢!!!

Aiden 回复

您的帖子我看了 非常有深度 对我当前工作有很大帮助 可以加个微信深入聊下吗

秦岭 回复

不好意思,这个实在是 不太行,因为 我们这个 项目还未面世,也不能告诉 具体的 竞品是什么,不好意思了哈

图像识别 opencv+minicap+appium,截图加载完成的页面或者页面动态加载的元素,一旦加载完成就可以知道时间,误差在 200ms 左右吧

chenyouan 回复

好的 谢谢 这个方式 我试一下 对比一下 这些方法的误差 ,200ms 是可以接受的误差

看了你的代码,时间计算有问题,开始时间赋值下面有个 sleep(3),强制等待 3 秒,最终结束时间,减去开始时间,误差应该就有 3 秒左右了,所以你做出来的时间与手动看帧数的时间差 2s 左右,建议把 dt_start = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') 这行代码,移到 sleep(3) 下面,再测试一下

机器人 回复

这个 三秒 是 故意等待的 就是查看页面显示的,实际上 我记录的时候已经给 sleep(3)这段时间去掉了

去掉的话,那就不是这个造成的了,用 UI 框架计算性能,确实是不太准确的,很多不太确定的因素

机器人 回复

也确实是没找到什么太好的办法

鸱夷子皮 回复

有疑问给我留言吧,会积极回复的。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册