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 包含硬件配置文件、系统映像、存储区域、外观和其他属性。在创建模拟器的时候要先下载对应的镜像文件,才可以创建成功。
- 在工具栏点击 AVD Manager
模拟器控制
在使用 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
获取更多技术文章分享