【专项测试2】专项测试之性能测试

官方文档:https://developers.google.com/web/tools/chrome-devtools/network/reference#timing-explanation

  1. 录制,清空
  2. 时间线
  • 蓝线:dom 加载完成
  • 红线:所有资源加载完成
  1. 捕获:查看加载图片
  2. 根据 waterfall 排序 ,进行资源筛选
  3. shift 查看资源依赖关系


快捷键: ad左移和右移 ws放大和缩小

w3c:https://www.w3.org/TR/navigation-timing/#sec-navigation-timing-interface

appium自动化webview性能数据

from appium import webdriver
from selenium.webdriver.common.by import By


class TestWebview:
    _package = "com.xueqiu.android"
    _activity = ".view.WelcomeActivityAlias"

    def test_webview(self):
        caps = dict()
        caps["platformName"] = "android"
        caps["deviceName"] = "hogwarts"
        caps["appPackage"] = self._package
        caps["appActivity"] = self._activity
        caps["noReset"] = True
        # 需要对应版本的 chromedirver ,才能在 webview 中执行 js 代码
        caps["chromedriverExecutable"] = "C:/develop/chromedriver/chromedriver2.20.exe"
        # 初始化driver
        self._driver = webdriver.Remote(
            "http://localhost:4723/wd/hub",
            caps)
        self._driver.implicitly_wait(15)
        # 进入到 webview
        self._driver.find_element(By.XPATH, "//*[@text='交易']").click()
        # 切换上下文到 webview
        webview = self._driver.contexts[-1]
        self._driver.switch_to.context(webview)
        # 执行 js 代码,获取性能数据
        all_time = self._driver.execute_script("return window.performance.timing")
        # 对数据进行二次操作
        response_time = all_time['responseEnd'] - all_time['responseStart']
        print(response_time)


使用 adb shell 获取 cpu 使用率

while true;do adb shell top -n 1 | grep xueqiu | awk '{print $3}';done

cpu 使用率:

  • 用户态:计算操作
  • 内核态:I/O 操作 → 系统调用

作业

  1. 使用 chrome 函数调用图查看 https://ceshiren.com/ ,并给你的分析结果
  2. 使用 top 命令每隔 2 秒提取出 xueqiu app 的 VSS 数据

2.使用 top 命令每隔 2 秒提取出 xueqiu app 的 VSS 数据

while true;do adb shell top -n 1 | grep xueqiu | awk '{print $6}';sleep 2s;done

根据分析工具,用时最久的是回调函数,往下追踪是render函数,也就是渲染用时最久,初步结论是加载页面最耗时

我用的mac,上面的VIRT应该和VSS一样吧,下面是命令和运行截图

$ while true;do adb shell top -n 1 | grep xueqiu | awk '{print $5}' ;sleep 2;done



while true;do adb shell top -n 1 | grep xueqiu | awk ‘{print $5}’ ;sleep 2;done


image


分析:网页渲染耗时最长

···
while true;do adb shell top -n 1 | grep xueqiu | awk ‘{print $5}’ ;sleep 2;done
···

  1. 使用 chrome 函数调用图查看 https://ceshiren.com/ ,并给你的分析结果
  2. 使用 top 命令每隔 2 秒提取出 xueqiu app 的 VSS 数据
    while true;do adb shell top -d 2 -n 10| grep xueqiu | awk '{print $5}';sleep 2;done
    image
  1. 使用 chrome 函数调用图查看 https://ceshiren.com/ ,并给你的分析结果

    分析结果:
    初步分析render渲染时间最长
  2. 使用 top 命令每隔 2 秒提取出 xueqiu app 的 VSS 数据
while true; do adb shell top -n 1 | grep xueqiu | awk '{print $5}'; sleep 2s;done

image

作业1:


图中显示加载script的时间稍上
作业2: