标题

  • 一: 环境的搭建:
  • 二:ADB调试工具的使用:
  • 1: 原理:
  • 2: 常用的ADB命令:
  • 三: 元素定位工具:
  • 1: 元素定位工具有两个。
  • 2: 如何使用??
  • 3: 案例一:
  • 4: 案例二:
  • 四: 快速入门:
  • 1: 测试环境是否正常:
  • 2: 查看APP的包名和界面名:
  • 3:自动化测试:新建通讯录:

一: 环境的搭建:

1: java 的JDK
2: Android的SDK
3:Appinum的安装
4: 雷电模拟器(或者用真机测试)
5: 安装Appinum客户端
pip install Appium-Python-Client -i https://pypi.tuna.tsinghua.edu.cn/simple

二:ADB调试工具的使用:

1: 原理:

ADB分为客户端和服务器,客户端在开发者电脑,用于发送ADB命令。
安卓手机/模拟器会有Demon进程,用来接收ADB命令。
ADB服务器负责,ADB客户端和Demon之间的通信。

2: 常用的ADB命令:

Appium iOS 原理 appium入门_包名

三: 元素定位工具:

1: 元素定位工具有两个。

  • uiautomatorviewer
  • monitor

2: 如何使用??

保证电脑已经连接手机,通过adb devices查看
打开元素定位工具
查找元素定位后的信息

3: 案例一:

描述: 用uiautomatorviewer查看浏览器中文本框的参数信息。

1: 保证电脑连接手机(模拟器)

Appium iOS 原理 appium入门_文本框_02


2: 打开元素定位工具uiautomatorviewer:双击即可。

Appium iOS 原理 appium入门_包名_03


3: 点击左上角的第二个获取模拟器信息:

Appium iOS 原理 appium入门_元素定位_04


4: 使用真正的模拟器打开浏览器,再次点击上面的按钮重新获取。

Appium iOS 原理 appium入门_文本框_05


5:注意的问题:

自动打开的命令窗口不要关(出现的黑窗口不要关)

打开uiautomatorviewer闪退,或者打开monitor空白,因为jdk版本过高导致

软件突然报错解决方法:
adb kill-server
adb start-server

4: 案例二:

描述: 使用monitor查看浏览器中文本框的参数信息

1:双击monitor.bat。

Appium iOS 原理 appium入门_文本框_06


2:查看坐标是否有手机(模拟器的信息),如果没有右击右上面的DDMS,选择重置。

Appium iOS 原理 appium入门_文本框_07


3: 点击手机位置,获取当前手机(模拟器的截图)

Appium iOS 原理 appium入门_文本框_08


4: 点击浏览器的文本框,获取属性信息:

Appium iOS 原理 appium入门_文本框_09

四: 快速入门:

1: 测试环境是否正常:

1: 测试电脑已经连接手机:

Appium iOS 原理 appium入门_文本框_10


2: 开始Appinm服务,第一次启动需要配置ANDROID_HOME和JAVA_HOME信息

Appium iOS 原理 appium入门_包名_11


Appium iOS 原理 appium入门_文本框_12


点击:Start Server v1.18.0

Appium iOS 原理 appium入门_元素定位_13


Appium iOS 原理 appium入门_包名_14

3: 查看自己的安卓版本号:进入模拟器(手机),看自己的版本号。

Appium iOS 原理 appium入门_包名_15

4: PyCharm写代码:

Appium iOS 原理 appium入门_包名_16


5: 运行代码查看效果:

Pycharm效果:

Appium iOS 原理 appium入门_文本框_17


Appium效果:

Appium iOS 原理 appium入门_包名_18


模拟器效果:启动配置,然后再关闭。

2: 查看APP的包名和界面名:

案例描述: 模拟器(手机)启动通讯录,然后使用终端命令查看,当前模拟器APP开启的包名和界面名。

1: 模拟器打开通讯录:

Appium iOS 原理 appium入门_包名_19


2: 终端输入命令,查看包名和界面名:

Appium iOS 原理 appium入门_包名_20


3: 将包名和界面名替换代码中的包名和界面名:(图有错,去掉t12)

Appium iOS 原理 appium入门_包名_21

3:自动化测试:新建通讯录:

描述:找到”创建新用户“,然后点击,再点击本地保存,然后定位姓名和电话,然后点击返回按钮就保存了。

1:获取+的属性信息

Appium iOS 原理 appium入门_元素定位_22


2:获取姓名文本框的信息

Appium iOS 原理 appium入门_包名_23


3: 获取电话文本框:

Appium iOS 原理 appium入门_包名_24


4: 获取返回按钮:

Appium iOS 原理 appium入门_文本框_25


5: 代码:

from appium import webdriver
import time

# 初始化平台信息
desired_caps = {
    'platformName': 'Android',  # 表示平台类型
    'platformVersion': '5.1.1',  # 表示平台的系统版本
    'deviceName': '****',  # 表示的是设备的ID,如果当前电脑只连接了一台手机或模拟器,可以使用4个*号代替
    'appPackage': 'com.android.contacts',  # 表示app的包名
    'appActivity': '.activities.PeopleActivity',  # 表示的是app的界面名,这里为`设置`的界面
    'noReset': True  # 启动app时不要清除app里的原有的数据
}

# 远程控制
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 获取+元素并且点击
driver.find_element_by_id('com.android.contacts:id/floating_action_button').click()
time.sleep(2)

# 获取姓名文本框,然后添加信息:任善文
driver.find_element_by_class_name('android.widget.EditText').send_keys("李建超")
time.sleep(1)

# 获取电话文本框,然后添加信息:11111111
class_list =  driver.find_elements_by_class_name('android.widget.EditText')
el = class_list[3]
el.send_keys("11111111")
time.sleep(1)

# 获取返回按钮,并且点击
driver.find_element_by_class_name('android.widget.ImageButton').click()
time.sleep(1)


driver.quit()  # 退出