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)
View Code

 

五、启动程序后,在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

 

 

 

 

 

posted @ 2021-08-10 11:06  kaer_invoker  阅读(99)  评论(0编辑  收藏  举报