搭建appium+python自动化测试环境

一.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)获取页面元素并操作


十一.学习的参考资料

Appium移动自动化测试教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容