Appium学习笔记(一)-2.appium原理及简单启动引用程序的demo
一、原理流程图
自动化脚本中需要制定操作终端操作系统的设置参数
二、Desired-Capabilities-Appium自动化配置项
设置参数:操作系统、版本、设备名称、包名(应用程序)、应用程序入口启动页面
官方文档入口:http://appium.io/docs/en/writing-running-appium/caps/index.html
参考文档:https://www.cnblogs.com/songzhenhua/p/13179926.html
三、常用adb命令(android debug bridge)
adb三部分:
1.client:运行cmd的当前机器,用来发送adb命令。
2.daemon守护进程:被测试的机器(被测试真机或则模拟器),用来接收adb命令
3.server:运行cmd的当前机器,用来管理client和daemon之间的通信。
1.连接当前模拟器,adb connect 127.0.0.1:62001
2.查看当前连接的设备:adb devices
3.查看被测试APP的包名和启动页面
aapt dump badging apk的绝对路径
也可以通过筛选方式 aapt dump badging d:\download\4.1.8.apk | findstr package
查找启动页:
aapt dump badging d:\download\4.1.8.apk | findstr launchable-activity
四、python操作手机终端
1.设置终端启动参数项:
desired_caps={
"platformName":"Android",
"platformVersion":"7.1.2",
"deviceName":"huawei",
"appPackage":"com.xxxxxx.mall",
"appActivity":"com.xxxxx.xxxmall_flutter.MainActivity",
"notReset":True
}
2.安装Appium-Python-Client的包
3.启动appium
4.代码中设置
1 ''' 2 @author:invoker 3 @project:appauto 4 @file: first_app.py 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/8/10 10:21 8 @version: Python 3.7.8 9 ''' 10 11 from appium import webdriver 12 13 # 设置终端启动项 14 desired_caps={ 15 "platformName":"Android", 16 "platformVersion":"7.1.2", 17 "deviceName":"huawei", 18 "appPackage":"com.xxxx.mall", 19 "appActivity":"com.xxxxx.xxxxmall_flutter.MainActivity", 20 "notReset":True 21 } 22 23 # 1.前提是appium server已经启动,这块后期需要自动化启动 24 # 2.模拟器或则真机已被电脑识别,通过adb命令 25 # 发送指令到appium server 26 webdriver.Remote("http://127.0.0.1:4723/wd/hub", 27 desired_caps)
五、启动程序后,在appium-desk中查看日志:
1、Appium服务,端口和工作地址信息
2、向Appium服务发起一个post接口请求,请求的数据包含客户端发送过来的DesiredCapalities配置。Appium会对应创建一个session,这个session用于后面客户端和Appium服务通讯使用,且告知使用引擎 UiAutomator2
3、检测Android SDK的环境,包括build-tools组件、adb等等。并且还会通过adb获取当前连接的设备情况,包括设备的API版本、设备是否在线等等。
4、检查io.appium.settings是否安装,若没有安装,则会在手机端(模拟器端)安装此服务
5、检查io.appium.uiautomator2.server,io.appium.uiautomator2.server.test 是否安装
这里告诉程序,appium server以什么端口和手机端什么端口进行通信
参考链接:
https://www.cnblogs.com/yyoba/p/12901067.html
https://www.cnblogs.com/xiaoyii/p/9832677.html
https://blog.csdn.net/winter199/article/details/99882750
https://www.cnblogs.com/insist8089/p/6897037.html
本文来自博客园,作者:kaer_invoker,转载请注明原文链接:https://www.cnblogs.com/invoker2021/p/15122747.html