码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 探索未来科技:深入了解设备交互 API 如何改变我们的生活


    简介

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

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

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

    设备交互应用场景

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

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

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

    • 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 示例

    1. ## 向号码拨打电话
    2. driver.make_gsm_call("13822233001", GsmCallActions.CALL);
    3. ## 接听来自当前号码的电话
    4. driver.make_gsm_call("13822233001", GsmCallActions.ACCEPT);
    5. ## 电话保持
    6. driver.make_gsm_call("13822233001", GsmCallActions.HOLD);
    7. ## 终止与号码的通话,可用于取消拨号或挂断通话
    8. driver.make_gsm_call("13822233001", GsmCallActions.CANCEL);
    9. ## 接收到来自该号码的短信
    10. driver.send_sms("555-123-4567", "hello Appium");
    网络设置

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

     

    Python 示例

    1. ## 获取当前网络状态
    2. print(driver.network_connection)
    3. ## 设置为飞行模式
    4. driver.set_network_connection(1)
    5. ## 只开启Wifi
    6. driver.set_network_connection(2)
    7. ## 设置为只有数据为开启状态
    8. driver.set_network_connection(4)
    9. ## 数据与Wifi均打开
    10. driver.set_network_connection(6)

     

    横竖屏切换

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

    • LANDSCAPE:切换为横屏

    • PORTRAIT:切换为竖屏 

    Python 示例

    1. # 输出当前 driver 的属性
    2. print(driver.orientation)
    3. # 设置为横屏
    4. driver.orientation == 'LANDSCAPE'
    5. # 设置为竖屏
    6. driver.orientation == 'PORTRAIT'

    获取日志

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

    Python 示例

    1. # 获取支持的日志类型
    2. log_types = driver.log_types
    3. print(log_types)
    4. # 获取 `logcat` 类型的日志
    5. logcat_logs = driver.get_log("logcat")
    6. print(logcat_logs)
    获取当前设备时间

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

    Python 示例

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

     测试开发高薪私教班开课啦!!!内容全面升级,新增小班私教、1v1私教内容,让同学们在学技术的同时,软技能也同步得到提升。4 个月 30+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,带你一站式掌握测试开发必备核心技能(对标阿里P6+)!直推 BAT 名企测试经理,模拟面试+面试复盘跳槽无忧!

    图片

    推荐视频学习

    7天软件测试快速入门教程

    新手专区--软件测试精品教程合集

    web自动化测试初级实战快速入门

    web自动化测试初级实战快速入门2

    app功能测试实战入门

    App自动化测试初级入门教程

    接口测试初级入门

    接口自动化测试L1

    接口自动化测试L2

    新手专区--接口测试入门到实战精通

    接口自动化测试训练营

    提升专区--测试开发技能图谱

    提升专区--测试开发精品公开课合集

    postman接口自动化测试实战入门教程

    2024最新Python3.1x软件测试开发必备语法基础讲解

    2024最新Python3.1x软件测试开发必备语法基础讲解2

    Python Java测试开发/自动化测试/性能测试/精准测试/测试左移/测试右移/人工智能测试

    软件测试公开课合集

    大厂面试真题解析

    Pytest 测试框架与 Allure2

    JMeter实时性能监控平台

     

  • 相关阅读:
    线程中的join()、wait() 和 notify()详解及练习题
    ORB-SLAM2 ---- Initializer::ReconstructF函数
    微信小程序多个按钮点击互不影响禁用实现
    十六、java 中常见日期格式的设置
    “薪资倒挂”、“毕业生平替” 这些现象说明测试行业已经...
    Mqtt服务器调研-emqx
    365天挑战LeetCode1000题——Day 052 逐步求和得到正数的最小值 贪心
    MySqL速成教程笔记系列七
    Java基础数组-选择排序算法
    细到不能再细的 Spring Cloud Gateway 原理分析(内含多张图片讲解)
  • 原文地址:https://blog.csdn.net/hog_ceshiren/article/details/136659597
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号