使用 @forbeslindesay/addon-ondevice-actions 提高移动端自动化测试效率

阅读时长 5 分钟读完

在移动端自动化测试过程中,经常需要触发一些系统事件,比如点击、滑动、旋转等。由于移动设备的限制,操作必须通过测试框架发送到目标设备上,然后再由设备上的测试应用程序执行。这涉及到与设备进行通信和控制的问题,增加了测试的难度和成本。

在此情况下,@forbeslindesay/addon-ondevice-actions 这个 npm 包可以帮我们解决这个问题,提高测试效率。这个包提供了一些常见的设备操作的封装,比如点击、滑动、旋转、截图、模拟按键等等。这些操作均在设备上直接执行,无需测试框架做更多的工作。

安装依赖

在使用 @forbeslindesay/addon-ondevice-actions 之前,需要在项目中安装相关依赖。

  1. 首先,安装 Node.js,并进行环境变量的配置;
  2. 安装 Appium,用于启动设备上的测试应用程序;
  3. 安装 adb,用于与设备进行通信和控制;
  4. 安装 @forbeslindesay/addon-ondevice-actions,使用 npm 命令进行安装:

使用示例

我们假设要测试的目标应用程序是一个登录界面,需要测试的场景是在用户名和密码框填入正确的信息,点击登录按钮后弹出提示框。

在准备开始编写测试用例之前,先启动 Appium 服务,确保设备能正常连接,并在设置中打开开发者选项和 USB 调试。

接下来,进入测试代码的编写阶段。我们先引入所需的库和配置,比如 appium-adb、appium-android-driver 和 @forbeslindesay/addon-ondevice-actions。

-- -------------------- ---- -------
----- --- - --------------------------
----- ------------ - -----------------------------------------
----- ------- - --------------------------------------------------

----- --- - --- ------

----- ----------- - -
  ------------- ----------
  ----------- -------- --------
  ---- ------------------- -- --------
  ----------- --------------------
  ------------ ----------------
--

然后,我们创建一个 driver 对象,用于执行测试用例。在这个对象的上下文中,@forbeslindesay/addon-ondevice-actions 提供了若干常见的操作方法,如:

  • driver.click(element):点击指定元素;
  • driver.swipe(options):滑动屏幕,比如下拉刷新;
  • driver.rotate(options):旋转设备屏幕;
  • driver.pressKey(keycode):按下指定按键,如回车、返回、home 等等。
-- -------------------- ---- -------
----------------- -------- -- -
  --- ------- -- ------------ --
  ---------------- -------- -- -
    ----- ---- - -------------------------- - ----- ----- --------------------- ---
    ------ - ----- ---------------------------------
  ---
  --------------- -------- -- -
    ----- -----------------------
  ---
  ---------- ----- ---- ------- -------- --- ---------- ----- -------- -- -
    -- -------------------
    ----- ------------- - ----- ------------------------ ------------
    ----- ------------- - ----- ------------------------ ------------
    -- -----------
    ----- --------------------------- ------------
    ----- --------------------------- ------------
    -- ------
    ----- ----------- - ----- ------------------------ ----------------
    ----- ---------------------------
    -- ---------
    ----- --------- - ----- ------------------------ --------------
    ------------ --------------------------------------
  ---
---

在上述代码中,我们使用了 beforeEach 和 afterEach 钩子函数,用于在每个测试用例执行前后创建和销毁 driver 对象。在测试用例函数内部,我们通过 findElement 方法获取屏幕上的元素,并在其上执行一系列操作,包括输入、点击和验证结果。

建议

@forbeslindesay/addon-ondevice-actions 提供了许多可用的操作方法,可帮助我们完成移动端自动化测试任务。但是在使用过程中,还需注意以下问题:

  1. 应用程序包必须先被安装在设备上,否则无法启动应用程序;
  2. 操作的前置条件必须被满足,如元素必须处于可见状态、屏幕必须在正确的方向等等;
  3. 操作的后置条件需要进行验证,仅当操作执行成功后,才认为测试用例通过;
  4. 在执行测试之前,需要确保设备上的测试程序已经安装并处于运行状态。

总之,在使用 @forbeslindesay/addon-ondevice-actions 时,请仔细查阅相关文档和源代码,并谨慎处理操作顺序和条件检查,以确保测试用例的正确性和稳定性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/128086