4

我正在尝试使用 appium 来测试一个带有真实手机的应用程序。它将在启动时花费 25 秒。如何加快速度?

appium 桌面版本:1.5
安卓操作系统:7.1

这是亚行日志

from appium import webdriver

class AppTester(object):
    """docstring for AppTester"""
    def __init__(self, command_executor, desired_capabilities):
        super(AppTester, self).__init__()
        self.driver = webdriver.Remote(command_executor, desired_capabilities)

    def click_ui_element(self, ui_selector):
        self.driver.find_element_by_android_uiautomator(ui_selector).click()

import time
from app_tester.tester import *

app_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator',
    'platformVersion': '7.1',
    'appPackage': 'com.freescale.kinetisbletoolbox',
    'appActivity': 'com.freescale.bletoolbox.activity.CheckActivity',
    'autoGrantPermissions': True,
    # 'locationServicesAuthorized': True,
    'autoAcceptAlerts': True,
    # 'gpsEnabled': True,
    'noReset': True,
    'fullReset': False,
}

app_url = 'http://localhost:4723/wd/hub'

secs = time.time()
app = AppTester(app_url, app_caps)
print 'start App assume %ds'%(time.time()-secs)
app.click_ui_element('new UiSelector().text("Beacons")')
print 'click ui spends %ds'%(time.time()-secs)
4

2 回答 2

4

根据我对本地设备和云(如 SauceLabs/TestDroid)的经验,在真实设备上启动 Appium 会话是很正常的(约 25 秒)。

查看 Appium 服务日志:

09:25:00 - 09:25:19

  • 检查可用设备
  • 检查设备上的 appium.settings 应用并为其授予权限
  • 检查 appium.unlock 应用程序

对于 7.x Android 真实设备来说还不错

09:25:23 - 记录您创建的会话。23 秒没有 AUT 安装,实际上没什么可抱怨的 :)

您仍然可以在测试套件之前只执行一次,然后使用相同的会话来运行所有测试。这就是你可以节省时间的方法。

于 2018-04-16T21:35:17.150 回答
2

通过添加以下功能,您可以大幅缩短启动时间。对我来说,使用本地真正的 Android 设备需要从 24 秒缩短到 17 秒。唯一的问题是,测试应用程序和 appium 服务器助手需要已经从之前的运行中安装在您的设备上。

DesiredCapabilities caps = new DesiredCapabilities();
   caps.setCapability("skipDeviceInitialization", true);
    caps.setCapability("skipServerInstallation", true);
    caps.setCapability("ignoreUnimportantViews", true);
    caps.setCapability("appPackage", "your.app.package");
    caps.setCapability("appActivity", "your.apps.activity.to.launch");

信用和解释

于 2020-04-10T00:38:13.267 回答