Appium简介及使用,手机自动化adb常用命令

Appium简介及使用,手机自动化adb常用命令,第1张

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、Appium简介1.appium的组成2.appium工作原理 二、adb常用命令三、appium交互总结


前言

Appium简介及adb常用命令


一、Appium简介 1.appium的组成 自动化脚本即client端(通过Java编写的代码,也可以通过其他语言编写)Appium指令服务器sdk通信环境(Android模拟器)或移动端设备 2.appium工作原理 Client端发送自动化指令给Appium server,Appium Server接收到client发送的指令后,转换为移动端能够识别的指令,然后发送给移动端设备,并对移动端设备进行 *** 作。 具体原理可查看下面两位大佬的帖子,原理描述的非常详细:
1.Appium工作原理
2.Appium工作原理 二、adb常用命令 设备选择:
adb -d 指定唯一真机
adb -e 指定唯一模拟器
adb -s 指定相应serialNumber号的设备查询设备:
adb devices打开谷歌模拟器,连接模拟器:
emulator @avd_name
adb connect deviceName安装卸载应用:
adb install path
adb uninstall appPackage设备与电脑互传文件,截图,录屏:
adb push 电脑路径 设备路径
adb pull 设备路径 电脑路径
截图: adb shell screencap 设备路径
录屏: adb shell screenrecord 设备路径调用Activity管理器 am:
启动应用: adb shell am start -n 包名/Activity名
强制停止应用: adb shell am force-stop 包名调用软件包管理器 pm:
显示所有应用: adb shell pm list packages
只显示系统应用: adb shell pm list packages -s
只显示第三方应用: adb shell pm list packages -3
列出所用测试软件包:adb shell pm list instrumentation
删除与软件包关联的所有数据: adb shell pm clear 包名调用dumpsys,获取连接设备上的所有系统服务的诊断输出:
获取前台包名: adb shell dumpsys activity | findstr mFocusedActivity
检查输入诊断: adb shell dumpsys input
测试界面性能: adb shell dumpsys gfxinfo 包名
检查电池诊断: adb shell dumpsys batterystats-charged 包名
查看CPU信息: adb shell dumpsys cpuinfo
查看内存信息: adb shell dumpsys meminfo
获取内存占用情况统计信息: adb shell dumpsys procstats --hours 3日志信息:
屏幕输出日志: adb logcat
通过标签过滤: adb logcat -s 标签
显示时间: adb logcat -v time adb shell dumpsys acticity top
输出所有信息: adb logcat -v long
输出日志到文件: adb logcat -v time >log.txt
清除旧日志信息: adb logcat -cMonkey基本用法:
adb monkey 参数 随机发送事件
参数:
-v: 指定反馈信息级别,总过分3个级别
-s: 指定伪随机数生成器的seed值
-p: 用于约束限制,用此参数指定一个或者多个包
--throttle: 每个事件结束后的间隔时间
--ignore-crashes: 忽略崩溃
--ignore-timeouts: 忽略超时
--ignore-security-exceptions: 忽略安全异常
--ignore-native-crashes: 忽略本地代码导致的崩溃异常
--monitor-native-crashes: 跟踪本地方法的崩溃问题
事件:
--pct-touch: 触摸事件
--pct-motion: 滑动事件
--pct-appswitch: activity之间的切换
--pct-pinchzoom: 缩放事件
--pct-rotation: 屏幕旋转事件
--pct-flip: 键盘事件
--pct-anyevent: 任意事件

adb shell monkey -p appPackage -v -v -v --pct-touch 30 --pct-motion 30 --pct-appswitch 20 --pct-flip 10 --pct-anyevent 10 -s 12345 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes 100 >monkey_log.txt

日志处理:
程序无响应:ANR
崩溃问题: CRASH
其他问题:Exception
获取Android手机的屏幕上的空间列表:
adb shell "uiautomator dump && cat /sdcard/window_dump.xml" 三、appium交互

1.Capability 设置

        caps = {}
        # 系统名称
        caps['platformName'] = 'Android'
        # 系统版本
        caps['platformVersion'] = '6.0'
        # 设备名称
        caps['deviceName'] = 'deviceName'
        # 设备包名
        caps['appPackage'] = 'appPackage'
        # 设备窗口页面
        caps['appActivity'] = 'appActivity'
        # 是否重置测试的环境
        caps['noReset'] = 'true'
        # 首次启动的时候,不停止 app
        # caps['dontStopAppOnReset'] = 'true'
        # 跳过设备初始化,
        caps['skipDeviceInitialization'] = 'true'
        # 启用 Unicode 输入
        caps['unicodeKeyBoard'] = 'true'
        # 在运行 Unicode 测试后,将键盘重置为其原始状态
        caps['resetKeyBoard'] = 'true'
        # 通过页面检测来增强其 webview 检测
        # caps['ensureWebviewsHavePages'] = 'true'
        # 加载动态页面时间设置为0s
        # caps['settings[waitForIdleTimeout]'] = 0
        # 指定对应版本的webdriver的路径
        # skipDeviceInitialization:true, false 跳过安装,权限设置等 *** 作
        caps['chromedriverExecutable'] = 'chromedriver-path'
        driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)
详细参数可查看appium官网:
Desired Capabilities元素定位:
手机界面定位方式与web界面定位方式类似(不能使用css selector方式定位),根据id或者相对路径定位;
cmd中输入命令uiautomatorviewer打开该工具定位(无法验证定位方式);
使用appium-desktop的inspector定位(可验证定位方式);
webview中的元素需要pc端访问:chrome://inspect/#devices,点击Webview里的inspect,即可d出当前webview的HTML视图控件交互: 点击方法:element.click()输入 *** 作:element.send_keys(“”)设置元素的值:element.set_value(“”)清除 *** 作:element.clear()是否可见:element.is_displayed 返回 true or false是否可用:element.enabled() 返回 true or false是否被选中:element.is_selected() 返回 true or false获取属性值:element.get_attribute(name)获取元素文本:element.text获取元素坐标:element.location
结果:{‘y’:19,‘x’:498}获取元素尺寸(高和宽):element.size
结果:{‘width’:500,‘height’:22}查看上下文: driver.contexts切换上下文:switch_to.context()查看窗口句柄:driver.window_handles切换窗口句柄:driver.switch_to.window()获取toast属性:toast = driver.find_element(By.XPATH, '//*[@]').text滚动查找:
driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiScrollable(new UiSelector().'
                                                               'scrollable(true).instance(0)).'
                                                               'scrollIntoView(new UiSelector().text("带查找文本").'
                                                               'instance(0));').click()
总结

appium的基本使用与adb命令的基本使用

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/993022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存