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

官方:Android vitals  |  Android Developers

navigation

导航事件的类型

const unsigned short TYPE_NAVIGATE = 0;
const unsigned short TYPE_RELOAD = 1;
const unsigned short TYPE_BACK_FORWARD = 2;

查看当前执行了什么导航动作

window.performance.navigation.type

使用 js 模拟上述操作

window.history.back()
window.history.forward()
window.location.reload()
window.location.href=“https://www.baidu.com/"

使用 js 修改 webview 页面

 def test_navigation(self):
        self._driver.find_element(By.XPATH, "//*[@text='交易']").click()
        webview = self._driver.contexts[-1]
        self._driver.switch_to.context(webview)
        type = self._driver.execute_script("return window.performance.navigation.type")
        print("before : ", type)
        self._driver.execute_script("window.location.href='https://www.baidu.com/'")
        self._driver.execute_script("window.location.reload()")
        type = self._driver.execute_script("return window.performance.navigation.type")
        print("after : ", type)

雪球 webview

下载到本地

adb pull ///data/user/0/com.xueqiu.android/files/h5/modules_new/xueqiu.com ~/Desktop/xueqiu.com

adb logcat | grep http

唤醒锁

避免使用唤醒锁
后台处理指南  |  Android 开发者  |  Android Developers
唤醒锁改进
使用前台服务
Services overview  |  Android Developers
确保锁的获取和释放简单

amdahl定律

  • S:加速比
  • a:系统某部分所需时间与总时间的比例
  • k:性能提升比例