在移动端自动化测试过程中,经常需要触发一些系统事件,比如点击、滑动、旋转等。由于移动设备的限制,操作必须通过测试框架发送到目标设备上,然后再由设备上的测试应用程序执行。这涉及到与设备进行通信和控制的问题,增加了测试的难度和成本。
在此情况下,@forbeslindesay/addon-ondevice-actions 这个 npm 包可以帮我们解决这个问题,提高测试效率。这个包提供了一些常见的设备操作的封装,比如点击、滑动、旋转、截图、模拟按键等等。这些操作均在设备上直接执行,无需测试框架做更多的工作。
安装依赖
在使用 @forbeslindesay/addon-ondevice-actions 之前,需要在项目中安装相关依赖。
- 首先,安装 Node.js,并进行环境变量的配置;
- 安装 Appium,用于启动设备上的测试应用程序;
- 安装 adb,用于与设备进行通信和控制;
- 安装 @forbeslindesay/addon-ondevice-actions,使用 npm 命令进行安装:
npm install --save-dev @forbeslindesay/addon-ondevice-actions
使用示例
我们假设要测试的目标应用程序是一个登录界面,需要测试的场景是在用户名和密码框填入正确的信息,点击登录按钮后弹出提示框。
在准备开始编写测试用例之前,先启动 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 提供了许多可用的操作方法,可帮助我们完成移动端自动化测试任务。但是在使用过程中,还需注意以下问题:
- 应用程序包必须先被安装在设备上,否则无法启动应用程序;
- 操作的前置条件必须被满足,如元素必须处于可见状态、屏幕必须在正确的方向等等;
- 操作的后置条件需要进行验证,仅当操作执行成功后,才认为测试用例通过;
- 在执行测试之前,需要确保设备上的测试程序已经安装并处于运行状态。
总之,在使用 @forbeslindesay/addon-ondevice-actions 时,请仔细查阅相关文档和源代码,并谨慎处理操作顺序和条件检查,以确保测试用例的正确性和稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/128086