|app自动化测试之设备交互API详解

Capability 是一组键值对的集合(比如:“platformName”: “Android”)。Capability 主要用于通知 Appium 服务端建立 Session 需要的信息。客户端使用特定语言生成 Capabilities,最终会以 JSON 对象的形式发送给 Appium 服务端。

Appium 提供了很多系统操作,在测试 APP 过程中会有一些特殊场景,比如来电话、短信,横竖屏切换,安装/卸载 APP,手机上的键盘操作,录屏等功能。下面介绍几个常用的设备交互 API。
更多用法参见官网:
http://appium.io/docs/en/about-appium/intro/

模拟电话/短信

用下面的命令模拟 GSM 电话和短信,注意:只能在模拟器上使用!

self.driver.make_gsm_call("5551234567", GsmCallActions.CALL);

self.driver.send_sms('555-123-4567', 'Hey lol')

App操作

# 实现 APP 的安装
self.driver.install_app('/Users/johndoe/path/to/app.apk') 

# 检测 APP 是否被安装
self.driver.is_app_installed('com.example.AppName');

# 启动 APP
self.driver.launch_app()

weditor安装方式

键盘事件可以参考 Android 官网:
https://developer.android.com/reference/android/view/KeyEvent.html
下面分别展示了按键、长按、隐藏键盘、软键盘是否显示,代码如下:

self.driver.press_keycode(10)
self.driver.long_press_keycode(10)
self.driver.hide_keyboard()
self.driver.is_keyboard_shown()

设置系统剪贴板的内容:

self.driver.set_clipboard('happy testing')
self.driver.set_clipboard_text('happy testing')

获取到剪贴板的内容:

self.driver.get_clipboard()
self.driver.get_clipboard_text()

设备交互API就先讲这些,如果还想学习其他的设备交互 API或其他知识点,都可以在下方留言哦!

⬇️ 点击“阅读原文”,提升测试核心竞争力!
原文链接

获取更多相关资料+v~ ceshiren001
获取更多技术文章分享
测试时需要用到测试设备,通常测试人员会选择使用模拟器进行自动化调试。模拟器分为原生模拟器与第三方模拟器。我们今天介绍的就是原生模拟器是 Android SDK 中自带的模拟器,可以通过 Android Studio 工具创建模拟器。

创建/管理 原生模拟器

Android 虚拟设备(AVD)是一种配置,它可以定义 Android 模拟器例如:Android 手机、平板电脑、Wear OS、Android 电视或车载设备的特征。AVD 管理器是一个可以从 Android Studio 启动的界面,它可以创建和管理 AVD。要打开 AVD 管理器,要执行如下操作:

  • 打开 Android Studio
    • 选择 Tools > AVD Manager
    • 在工具栏点击 AVD Manager
      一个完整的 AVD 包含硬件配置文件、系统映像、存储区域、外观和其他属性。在创建模拟器的时候要先下载对应的镜像文件,才可以创建成功。

模拟器控制

在使用 appium 进行自动化测试时,可以使用 DesireCapability 中的参数 avd,运行时会自动启动 emulator 模拟器。

class TestSearch:
    def setup(self):
            desired_caps = {}
                    desired_caps['platformName'] = 'Android'
                            desired_caps['platformVersion'] = '6.0'
                                    desired_caps['deviceName'] = 'emulator-5554'
                                            desired_caps['appPackage'] = 'com.xueqiu.android'
                                                    desired_caps['appActivity'] = 'com.xueqiu.android.common.MainActivity'
                                                            desired_caps['unicodeKeyBoard'] = 'true'
                                                                    desired_caps['resetKeyBoard'] = 'true'
                                                                            # desired_caps['app'] = '/xxx/xueqiu.apk'
                                                                                    desired_caps['avd'] = 'Pixel_23_6'
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
                self.driver.implicitly_wait(5)
    def teardown(self):
            self.driver.quit()
    def test_mobile(self):
            pass

除了通过 Android Studio 工具创建模拟器,也可以使用第三方模拟器,比如网易 mumu 模拟器,夜神模拟器等。

⬇️ 点击“阅读原文”,提升测试核心竞争力!

原文链接

获取更多相关资料+v~ ceshiren001
获取更多技术文章分享

Appium底层架构

比如下面的例子展示了几个重要的 capabilities:

{
  "platformName": "Android",
    "platformVersion": "6.0",
      "deviceName": "hogwarts",
      }

通用的Capability参数

Capabilities 参数支持多种平台:

Android Only

下面这些 Capabilities 仅支持 Android 驱动,比如 UiAutomator2。

下面这些 Capabilities 仅支持 iOS 驱动,比如 XCUITest Driver 和 deprecated UIAutomation Driver。

更多 Capabilities 信息请查看官网:
http://appium.io/docs/en/writing-running-appium/caps/

⬇️ 点击“阅读原文”,提升测试核心竞争力!
原文链接

获取更多相关资料+v~ ceshiren001
获取更多技术文章分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值