移动端测试——手机常见操作的API (5)

appium基础API

1.1 常用的手机操作API

针对手机的一些常用设置功能进行操作

  • 前置代码
# 导入driver对象
from appium import webdriver

import time

# server 启动参数
desired_caps = {}
# 设备信息(系统、版本、设备号)
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9'
desired_caps['deviceName'] = '192.168.72.103:5555'
# app信息(包名、启动名)
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'

# 声明driver对象
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    pass
except Exception as e:
    print(e)
finally:
    # 关闭驱动对象
    driver.quit()

1.1.1 获取手机时间

方法:device_time

# 获取当前手机的时间
print(driver.device_time)

移动端测试——手机常见操作的API (5)

1.1.2 获取手机的宽高

获取手机的宽高,可以根据宽高做一些坐标的操作
方法:get_window_size()

print(driver.get_window_size())

移动端测试——手机常见操作的API (5)

eg:

phone_size = driver.get_window_size()
x = phone_size.get("width")/2
y_0 = 2*phone_size.get("height")/3
y_1 = phone_size.get("height")/3
driver.swipe(x, y_0, x, y_1,3000)

1.1.3 发送键到设备

模拟系统键值的操作,比如操作honme键,音量键,返回键等。
方法:keyevent(keycode, metastate=None)
参数|说明
-|-
keycode|发送给设备的关键代码
metastate|关于被发送的关键代码的元信息,一般为默认值

eg(业务场景):

打开设置,按多次音量增加键

for i in range(3):
    driver.keyevent(24)
  • 常用键
元信息 名称 关键代码
KEYCODE_HOME 按键Home 3
KEYCODE_BACK 返回键 4
KEYCODE_CALL 拨号键 5
KEYCODE_ENDCALL 挂机键 6
KEYCODE_DPAD_UP 导航键 向上 19
KEYCODE_DPAD_DOWN 导航键 向下 20
KEYCODE_DPAD_LEFT 导航键 向左 21
KEYCODE_DPAD_RIGHT 导航键 向右 22
KEYCODE_DPAD_CENTER 导航键 确定键 23
KEYCODE_VOLUME_UP 音量 增加键 24
KEYCODE_VOLUME_DOWN 音量 减小键 25
KEYCODE_POWER 电源键 26
KEYCODE_CAMERA 拍照键 27
KEYCODE_TAB Tab键 61
KEYCODE_ENTER 回车键 66
KEYCODE_DEL 退格键 67
KEYCODE_FOCUS 拍照对焦键 80
KEYCODE_MENU 菜单键 82
KEYCODE_NOTIFICATION 通知键 83
KEYCODE_SEARCH 搜索键 84
KEYCODE_MUTE 话筒静音键 91
KEYCODE_PAGE_UP 向上翻页键 92
KEYCODE_PAGE_DOWN 向下翻页键 93
KEYCODE_ESCAPE ESC键 111
KEYCODE_FORWARD_DEL 删除键 112
KEYCODE_CAPS_LOCK 大写锁定键 115
KEYCODE_SCROLL_LOCK 滚动锁定键 116
KEYCODE_BREAK Break/Pause键 121
KEYCODE_MOVE_HOME 光标移动到开始键 122
KEYCODE_MOVE_END 光标移动到末尾键 123
KEYCODE_INSERT 插入键 124
KEYCODE_NUM_LOCK 小键盘锁 143
KEYCODE_VOLUME_MUTE 扬声器静音键 164
KEYCODE_ZOOM_IN 放大键 168
KEYCODE_ZOOM_OUT 缩小键 169
KEYCODE_ALT_LEFT Alt+Left ?
KEYCODE_ALT_RIGHT Alt+Right ?
KEYCODE_CTRL_LEFT Control+Left ?
KEYCODE_CTRL_RIGHT Control+Right ?
KEYCODE_SHIFT_LEFT Shift+Left ?
KEYCODE_SHIFT_RIGHT Shift+Right ?

参阅:

1.1.4 操作手机通知栏

打开手机的通知栏,可以获取通知栏的相关信息和元素操作
方法:open_notifications()

eg(业务场景):

启动设置,打开通知栏,2秒后,返回主页

driver.open_notifications()
time.sleep(2)
driver.keyevent(3)

eg:

1.1.5 获取手机当前网络

获取手机当前连接的网络
方法:network_connection

移动端测试——手机常见操作的API (5)

eg(业务场景):

获取手机当前网络模式

print(driver.network_connection)

1.1.6 设置手机网络

更改手机的网络模式,模拟特殊网络情况下的测试用例
方法:set_network_connection(connectionType)

参数 说明
connectionType 需要被设置成为的网络类型

eg(业务场景):

启动设置,设置手机网络为飞行模式

driver.set_network_connection(1)

1.3.8 手机截图

截取手机当前屏幕,保存指定格式图片到设定位置
方法:get_screenshot_as_file(filename)
参数|说明
-|-
filename|指定路径下,指定格式的图片.

eg(业务场景):

打开设置页面,截图当前页面保存到当前目录,命名为screen.png

import os
driver.get_screenshot_as_file(os.getcwd() + os.sep + './screen.png')

执行结果:
当前目录下会生成screen.png文件
---

更新中......


移动端测试——手机常见操作的API (5)

上一篇:android studio连接雷电模拟器 【AS 模拟器】


下一篇:攻防世界 reverse android-app-100