写点什么

深入了解设备交互 API 如何改变我们的生活

  • 2024-03-12
    北京
  • 本文字数:1692 字

    阅读完需:约 6 分钟

简介

设备交互是自动化测试工具与移动设备进行沟通和掌握的过程,它不仅限于基本的应用元素点击和输入等操作。


在移动端应用程序测试中,设备交互的范围扩展到模拟通信方面和模拟设备本身的功能和行为,会涉及到设备的通信行为,例如模拟电话呼叫和短信发送,以及控制设备的一些系统级别的功能,例如网络连接状态、屏幕方向等。

获取更多技术资料,请点击!


通过这样的设备交互,测试人员可以更全面地评估应用在不同设备和环境条件下的表现,确保应用在实际使用中能够正常工作并提供良好的用户体验。

设备交互应用场景

  • 模拟电话和短信:在测试通讯类应用程序时,模拟电话呼叫和接听、发送和接收短信等操作可以帮助验证应用程序在与电话功能相关的场景中的行为和响应。

  • 网络模式:模拟不同的网络条件,如良好、较差或无网络连接等,可以测试应用程序在不同网络环境下的性能和容错能力。这可用于测试应用程序的网络请求、数据同步和离线模式的处理等功能。

  • 横竖屏切换:应用程序在不同屏幕方向下的布局和用户界面的适应性是非常重要的。通过模拟设备从横屏到竖屏或从竖屏到横屏的切换,可以验证应用程序在不同屏幕方向下的布局和显示效果。

  • App 处理:模拟应用程序被其他应用或系统中断(如来电、短信、通知等),然后再返回到应用程序中,可以测试应用程序在中断和恢复过程中的稳定性和用户体验。

  • 录屏:录制设备屏幕上的操作过程,可以用于制作演示视频、记录应用程序的缺陷复现步骤,以及在教学和培训中展示设备和应用程序的操作方法。

常用基础操作

锁屏与解锁

  • 锁屏:lock()

  • 解锁:unlock()

  • 判断是否锁屏:is_locked()如果是锁屏状态返回 True。

截图与录屏

  • 截图有两个方式:

  • get_screenshot_as_file('./photos/img01.png')

  • save_screenshot('./photos/img02.png')

  • 录屏:模拟器需要 androidAPI>27,华为不支持,只支持 8.0 以上的版本。

  • 开始录制:start_recording_screen()

  • 结束录制:stop_recording_screen()

打开通知栏

  • 打开通知栏: open_notifications()

获取当前屏幕分辨率

  • 获取当前屏幕分辨率:get_window_size()

模拟电话、短信

Appium 提供了模拟来电和短信的功能,这在测试中可用于验证应用在接收来电或短信时的响应。需要注意的是,这些模拟功能仅限于原生模拟器,不支持第三方的模拟器。


Python 示例


## 向号码拨打电话driver.make_gsm_call("13822233001", GsmCallActions.CALL);## 接听来自当前号码的电话driver.make_gsm_call("13822233001", GsmCallActions.ACCEPT);## 电话保持driver.make_gsm_call("13822233001", GsmCallActions.HOLD);## 终止与号码的通话,可用于取消拨号或挂断通话driver.make_gsm_call("13822233001", GsmCallActions.CANCEL);## 接收到来自该号码的短信driver.send_sms("555-123-4567", "hello Appium");
复制代码

网络设置

只有 Android 可以使用 set_network_connection 进行网络设置



Python 示例


## 获取当前网络状态print(driver.network_connection)## 设置为飞行模式driver.set_network_connection(1)## 只开启Wifidriver.set_network_connection(2)## 设置为只有数据为开启状态driver.set_network_connection(4)## 数据与Wifi均打开driver.set_network_connection(6)
复制代码

横竖屏切换

实现横竖屏切换的功能可以通过设置 driver 的属性 orientation 来修改,属性值的含义如下:


  • LANDSCAPE:切换为横屏

  • PORTRAIT:切换为竖屏


Python 示例


# 输出当前 driver 的属性print(driver.orientation)# 设置为横屏driver.orientation == 'LANDSCAPE'# 设置为竖屏driver.orientation == 'PORTRAIT'
复制代码

获取日志

执行代码是如果需要获取日志信息可以通过 get_log 方法查看,需要输入参数表示日志的类型,例如 logcat 表示获取 Android 设备上的日志,该方法返回一个包含所有日志信息的字典。


Python 示例


# 获取支持的日志类型log_types = driver.log_typesprint(log_types)
# 获取 `logcat` 类型的日志logcat_logs = driver.get_log("logcat")print(logcat_logs)
复制代码

获取当前设备时间

Appium 提供了一个获取设备实际时间的方法,可通过调用 getDeviceTime 来获取。


Python 示例


# 打印出设备的实际时间print(driver.get_device_time())
复制代码


用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
深入了解设备交互 API 如何改变我们的生活_霍格沃兹测试开发学社_InfoQ写作社区