qt4i.device
Package¶
iOS设备模块
-
class
qt4i.device.
Device
(attrs={}, devicemanager=None)¶ 基类:
object
iOS设备基类(包含基于设备的UI操作接口)
-
call_qt4i_stub
(method, params, clazz=None)¶ QT4i Stub通用接口
参数: - method (str) – 函数名
- params (list) – 函数参数
- clazz (str) – 类名
返回: 插桩接口返回值
返回类型: str
-
cleanup_log
()¶ 清理交互日志
-
click
(x=0.5, y=0.5)¶ 点击屏幕
参数: - x (float) – 横向坐标(从左向右,屏幕百分比)
- y (float) – 纵向坐标(从上向下,屏幕百分比)
-
copy_to_local
(bundle_id, remotepath, localpath=None, is_dir=False, is_delete=True)¶ 拷贝手机中sandbox指定目录的文件到Mac本地
参数: - bundle_id (str) – app的bundle id
- remotepath (str) – sandbox上的目录或者文件,例如:/Library/Caches/test/
- localpath (str) – 本地的目录
- is_dir (boolean) – remotepath是否为目录,默认为单个文件
返回: 拷贝到本地的文件列表
返回类型: list or None
-
deactivate_app_for_duration
(seconds=3)¶ 将App置于后台一定时间
参数: seconds (int) – 秒,若为-1,则模拟按Home键的效果,也即app切到后台后必须点击app才能再次唤起 返回: boolean
-
double_click
(x, y)¶ 双击屏幕
参数: - x (float) – 横向坐标(从左向右计算,屏幕百分比)
- y (float) – 纵向坐标(从上向下计算,屏幕百分比)
-
download_file
(file_url, dst_path)¶ 从网上下载指定文件到本地
参数: - file_url (str) – 文件的url路径,支持http和https路径, 需要对app插桩
- dst_path (str) – 文件在手机上的存储路径,例如:/Documents
-
drag
(from_x=0.9, from_y=0.5, to_x=0.1, to_y=0.5, duration=0.5)¶ 回避屏幕边缘,全屏拖拽(默认在屏幕中央从右向左拖拽)
参数: - from_x (float) – 起点 x偏移百分比(从左至右为0.0至1.0)
- from_y (float) – 起点 y偏移百分比(从上至下为0.0至1.0)
- to_x (float) – 终点 x偏移百分比(从左至右为0.0至1.0)
- to_y (float) – 终点 y偏移百分比(从上至下为0.0至1.0)
- duration (float) – 持续时间(秒)
-
drag2
(direct='Left')¶ 回避屏幕边缘,全屏在屏幕中央拖拽
参数: direct (EnumDirect.Left|EnumDirect.Right|EnumDirect.Up|EnumDirect.Down) – 拖拽的方向
-
driver
¶ 设备所在的driver
返回类型: RPCClientProxy
-
flick
(from_x=0.9, from_y=0.5, to_x=0.1, to_y=0.5)¶ 回避屏幕边缘,全屏滑动/拂去(默认从右向左滑动/拂去) 该接口比drag的滑动速度快,如果滚动距离大,建议用此接口
参数: - from_x (float) – 起点 x偏移百分比(从左至右为0.0至1.0)
- from_y (float) – 起点 y偏移百分比(从上至下为0.0至1.0)
- to_x (float) – 终点 x偏移百分比(从左至右为0.0至1.0)
- to_y (float) – 终点 y偏移百分比(从上至下为0.0至1.0)
-
flick2
(direct='Left')¶ 回避屏幕边缘,全屏在屏幕中央滑动/拂去
参数: direct (EnumDirect.Left|EnumDirect.Right|EnumDirect.Up|EnumDirect.Down) – 滑动/拂去的方向
-
flick3
(from_x=0.5, from_y=0.8, to_x=0.5, to_y=0.2, repeat=1, interval=0.5, velocity=1000)¶ 全屏连续滑动(默认从下向滑动) 该接口比flick2的滑动速度快,适用于性能测试
参数: - from_x (float) – 起点 x偏移百分比(从左至右为0.0至1.0)
- from_y (float) – 起点 y偏移百分比(从上至下为0.0至1.0)
- to_x (float) – 终点 x偏移百分比(从左至右为0.0至1.0)
- to_y (float) – 终点 y偏移百分比(从上至下为0.0至1.0)
- repeat (int) – 滑动的次数
- interval (double) – 滑动的间隔时间(秒)
- velocity (double) – 滑动的速度
-
get_app_list
(app_type='user')¶ 获取设备上的app列表
参数: app_type (str) – app的类型(user/system/all) 返回: list 返回类型: app列表,例如: [{‘com.tencent.demo’: ‘Demo’}]
-
get_crash_log
(procname)¶ 获取指定进程的最新的crash日志
参数: proc_name (str) – app的进程名,可通过xcode查看 返回: crash日志路径 返回类型: string or None
-
get_device_detail
()¶ 获取设备型号,颜色,内存大小等详细信息
-
get_driver_log
(start_time=None)¶ 获取driver日志 :param start_time 用例执行的开始时间 :type str
try-catch 说明:为了兼容client以及server端,对取失败用例日志的操作(后续接口更新可删除)
-
get_foreground_app_name
()¶ 获取前台app的名称
-
get_foreground_app_pid
()¶ 获取前台app的PID
-
get_icon_badge
(app_name)¶ 获取设备中app消息未读数
-
get_log
(start_time=None)¶ 获取交互日志 :param start_time 用例执行的开始时间 :type str
try-catch 说明:为了兼容client以及server端,对取失败用例日志的操作(后续接口更新可删除)
-
get_syslog
(watchtime, process_name=None)¶ 获取手机系统日志
-
install
(app_path)¶ 安装应用程序
参数: app_path (str) – ipa或app安装包的路径(注意:真机和模拟器的安装包互不兼容) 返回类型: boolean
-
ios_version
¶ iOS版本
返回类型: str
-
keyboard
¶ 获取键盘
-
list_files
(bundle_id, file_path)¶ 列出手机上app中的文件或者目录
参数: - bundle_id (str) – app的bundle id
- file_path (str) – sandbox上的目录或者文件,例如:/Library/Caches/test/
-
lock
()¶ 锁定设备(灭屏)
-
long_click
(x, y, duration=3)¶ 长按屏幕
参数: - x (float) – 横向坐标(从左向右,屏幕百分比)
- y (float) – 纵向坐标(从上向下,屏幕百分比)
- duration (float) – 持续时间(秒)
-
name
¶ 设备名
返回类型: str
-
print_uitree
(need_back=False)¶ 打印界面树
参数: need_back (boolean) – 是否需要返回UI Tree 返回: 控件树 返回类型: dict or None
-
pull_file
(bundle_id, remotepath, localpath=None, is_dir=False, is_delete=True)¶ 拷贝手机中sandbox指定目录的文件到Mac本地
参数: - bundle_id (str) – app的bundle id
- remotepath (str) – sandbox上的目录或者文件,例如:/Library/Caches/test/
- localpath (str) – 本地的目录
- is_dir (boolean) – remotepath是否为目录,默认为单个文件
返回: 拷贝到本地的文件列表
返回类型: list or None
-
push_file
(bundle_id, localpath, remotepath)¶ 拷贝Mac本地文件到手机中sandbox的指定目录地
参数: - bundle_id (str) – app的bundle id
- localpath (str) – 文件路径,支持本地文件路径和http路径
- remotepath (str) – iPhone上的目录或者文件,例如:/Documents/
返回类型: boolean
-
reboot
()¶ 重启手机
-
release
()¶ 释放设备
-
remove_file
(bundle_id, file_path)¶ 删除手机上app中的文件或者目录(主要用于app的日志或者缓存的清理)
参数: - bundle_id (str) – app的bundle id
- file_path (str) – sandbox上的目录或者文件,例如:/Library/Caches/test/
-
remove_files
(bundle_id, file_path)¶ 删除手机上app中的文件或者目录(主要用于app的日志或者缓存的清理)
参数: - bundle_id (str) – app的bundle id
- file_path (str) – sandbox上的目录或者文件,例如:/Library/Caches/test/
-
reset_host_proxy
()¶ 关闭host代理
-
screenshot
(image_path=None)¶ 截屏,返回元组:截屏是否成功,图片保存路径
参数: image_path (str) – 截屏图片的存放路径 返回类型: tuple (boolean, str)
-
set_host_proxy
(server, port, wifi)¶ 设置host代理
参数: - server (str) – 服务器名
- port (int) – 端口号
- wifi (str) – wifi名
-
simulator
¶ 是否模拟器
返回类型: boolean
-
start_app
(bundle_id, app_params, env, trace_template=None, trace_output=None, retry=5, timeout=55)¶ 启动APP
参数: - bundle_id (str) – APP Bundle ID
- app_params (dict) – app启动参数
- env (dict) – app的环境变量
- trace_template (str) – 专项使用trace_template路径,或已配置的项
- trace_output (str) – 专项使用trace_output路径
- retry (int) – 重试次数(建议大于等于2次)
- timeout (int) – 单次启动超时(秒)
- instruments_timeout (int) – 闲置超时(秒)
返回类型: boolean
-
stop_app
()¶ 终止APP
返回类型: boolean
-
switch_network
(network_type, nlc_type)¶ 实现网络切换
参数: - network_type (int) – 网络类型,例如: 0:无WIFI无xG 1:无WIFi有xG 2:有WIFI无xG 3:有WIFI有xG 4:飞行模式
- nlc_type (NLCType) – 模拟弱网络类型
-
udid
¶ 设备的udid
返回类型: str
-
uninstall
(bundle_id)¶ 卸载应用程序
参数: bundle_id (str) – APP的bundle_id,例如:com.tencent.qq.dailybuild.test 返回类型: boolean
-
unlock
()¶ 解锁设备
-
upload_photo
(photo_path, album_name, cleared=True)¶ 上传照片到系统相册
参数: - photo_path (str) – 本地照片路径
- album_name (str) – 系统相册名
- cleared (boolean) – 是否清空已有的同名相册
返回类型: boolean
-
-
class
qt4i.device.
DeviceManager
¶ 基类:
object
设备管理类,用于多个设备的申请、查询和管理(此类仅用于Device内部,测试用例中请勿直接使用)
-
static
update_local_devices
()¶ 更新本地设备列表
-
static
-
class
qt4i.device.
DeviceResource
(host, port, udid, is_simulator, name, version, csst_uri=None, resource_id=None)¶ 基类:
object
设备资源
-
class
qt4i.device.
DeviceServer
(addr, port, udid=None, agent_port=8100, driver_type='xctest', endpoint_clss='')¶ 基类:
object
设备服务器
-
debug
()¶ 调试模式启动driverserver
-
exist
()¶ driverserver进程是否存在
-
get_pid
()¶ Returns the PID from pidfile
-
restart
()¶ 重启
-
start
()¶ 启动
-
stop
()¶ 停止
-
-
class
qt4i.device.
IOSDeviceResourceHandler
(resource_lock_type=<class 'testbase.resource.LocalResourceLock'>)¶ 基类:
testbase.resource.LocalResourceHandler
iOS设备资源的本地管理
-
iter_resource
(res_group=None, condition=None)¶ 遍历全部资源(可以按照优先级顺序返回来影响申请资源的优先级)
参数: - res_type (str) – 资源类型
- res_group (str) – 资源分组
- condition (dict) – 资源属性匹配
返回: iterator of resource, dict type with key ‘id’
Rtypes: iterator(dict)
-