一.appium简介
工作原理:
a.执行脚本时,client-java将脚本翻译为webdriver协议,与appium server通过json进行交互
b.appium server通过webdriver协议将翻译脚本翻译为UI Automator命令,通过bootstrap执行
c.bootstra把执行结果转发回appium server
二.搭建appium+python自动化环境
以下安装可以参考这个网址:Appium移动自动化测试
1).安装java环境(记得把jdk和jer路径放到环境变量中),安装教程地址:java环境配置,可在cmd下输入java查看是否配置完成
2).安装android adt或者sdk
3).安装sdk manager
4)安装sdk platform-tools
5)安装android模拟器(如果是真机测试,这边可以忽略)
6)安装adb环境,下载链接:adbdriver.zip,配置教程:adb配置教程,可在cmd下输入adb查看是否配置完成
7)下载appium—desktop并安装。下载地址https://github.com/appium/appium-desktop/releases/,下载最新版
三.获取文件的app的package、activity方式
1)在cmd环境下,cd到sdk\builds-tools\ 目录下
2)在刚刚的目录下执行aapt dump badging E:\apk\es3.apk(包在电脑上的路径),就可以查看到app的package和activity
四.获取页面的元素
1)把手机连接电脑(cmd命令行里输入:adb devices,可以看到当前连接的手机)
2)打开android sdk里面的uiautomator,点击页面上方的手机屏幕的按钮,uitomator上出现的手机上此时的页面
3)可以在automator页面的右边,查看到需要定位页面的元素
五.用python代码编写执行
1)find_element_by_id("XXX")
2)find_element_by_class_name("XXXX")
3)find_element_by_accessibility_id("XXX") 查询界面元素的content-desc属性 在当期那页面唯一
4)find_element_by_xpath("XXXX")(xpath的原理:就是先找到一个唯一的id,再在此元素下面查找其他的元素)
xpath=“//*[@resource-id=' ']//”
5)还有一种是通过autma投入 api,来控制设备
#1 使用resourceld方式
driver.find_element_by_android_uiautomator('new UiSelector().resoureId(“%s”)')
#2 使用text方式
driver.find_element_by_android_uitomator('new UiSelector().text("%s")')
# 3使用description方式
driver.find_element_by_android_uitomator('new UiSeletor().description("%s")')
# 4使用class方式
driver.find_element_by_android_uitomator('new UiSelector().className("%s")')
#5.使用index方式
driver.find_element_by_android_uitomator('new UiSelector().index("%s")')
六.操作手势
1)常用的方式
click() 点击
send_keys() 输入数据
swipe(self, start_x, start_y, end_x, end_y, duration=None) 滑动
2)TouchAction库(单触点操作)
(定义了短按press、释放release、移动到moveTo、点击tap、等待wait、长按longpress、执行perform)
使用方式
from appium.webdriver.common.touch_action import TouchAction
driver.perfrom(TouchAction().tap(el))
或者TouchAction().tap(el).perfrom
3)MultiAction库(多触点操作)
from appium.webdriver.common.multi_action import MultiAction
action0=TouchAction().tap(el1)
action1=TouchAction().tap(el2)
MultiTouch().add(action0).add(action1).perform
七.python的安装
1)win下载地址:https://www.python.org/downloads/windows/(一般下载3.6版本的)
2)安装好了,记得配置环境(如果是3.5以上的版本这边勾选就就会自动添加到环境变量中)
3)判断python是否已安装
在cmd环境中输入python:出现如下情况证明已安装成功
八.pycharm的使用
1)下载:下载社区版的即可(下载地址:https://www.jetbrains.com/pycharm/download/#section=windows)
2)安装:可参考https://blog.csdn.net/ziyouhahaze/article/details/78230811
3)使用
a.新建一个工程
选择file——new project,填写保存路径,并命名
b.创建一个项目
c.创建一个文件
左侧导航栏选择 Pure Python ,右侧的 Location 选择项目的路径, Interpreter 通过下拉栏选择 Python版本 ,这里直接使用 Python 的安装路径即可。
选择完成之后,点击 Create 按钮,进入界面。这时就可以创建文件了,步骤如下图所示:
d.创建一个文件
Crossin-practices New Python File
九.appium—desktop的使用
下载后直接打开,出现下面页面
这边appium和UItomator的使用上有冲突(1.6.2之后的版本这个问题已修复),在使用apium—desktop时就无法正常使用automator,直接点击start server的按钮,即打开appium
十.自动化脚本的基本知识讲解
1)基本配置
基本配置
其中:platforName:设备的名称
platforVersion:手机的版本
devicesName:手机的设备号(cmd中adb devices获取)
appPackage:包名
appActivity:安卓应用的操作界面
unicodeKeyboard:安装一个中文的输入法
2)获取页面元素并操作
作者:Martian_116b
链接:https://www.jianshu.com/p/386dbe8ef695