零基础搭建app自动化测试框架(Windows)

第一节安装Appium

Appium官方网站:http://appium.io/

先安装node.js 。node.js官方网站:https://nodejs.org/

以Windows 7 (64) 为例进行安装,选择Windows installer(.msi)  64-bit 版本进行下载

下载完成,双击进行安装

安装完成,打开Windows命令提示符(CMD 命令),敲入“npm”命令回车。

出现以上信息表示安装成功。


下面通过npm安装Appium 。

使用淘宝源安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install -g appium@1.6.3

安装appium1.6.3版本


安装完成之后配置环境变量,编辑path,例如添加:

C:\Program Files\nodejs\node_modules\.bin;

C:\Program Files\nodejs\;


运行cmd,输入:appium -v,若正常显示版本信息,则appium环境安装成功


节安装Android开发环境

安装java 环境

java下载地址:http://www.java.com/zh_CN/download/manual.jsp

双击下载的JDK ,设置安装路径。这里我们选择默认安装在

C:\Program Files (x86)\Java\jdk1.8.0_25目录下。 



下面设置环境变量:

“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建..

变量名:JAVA_HOME 

变量值:C:\Program Files (x86)\Java\jdk1.8.0_25 

变量名:CALSS_PATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 

变量名:PATH

变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

在Windows命令提示符下输入java看是否配置成功:

安装android adt & SDK

Android-sdk下载地址:http://dl.google.com/android/installer_r23.0.2-windows.exe

或者 http://dl.google.com/android/android-sdk_r23.0.2-windows.zip


下面设置Android环境变量,方法与java环境变量类似。(我本机的目录为:D:\android\android-sdk-windows)

“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建..

变量名:ANDROID_HOME 

变量值:D:\android\android-sdk-windows

变量名:PATH

变量值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;


安装SDK Platform-Tools

http://www.androiddevtools.cn/



把解压出来的 platform-tools 文件夹放在 android sdk 根目录下,并把 adb所在的目录添加到系统PATH 路径里,即可在命令行里直接访问了 adb, fastboot 等工具。

安装SDK Build-Tools   http://www.androiddevtools.cn/


这是Android开发所需的Build-Tools,下载并解压后,将解压出的整个文件夹复制或者移动到  android sdk 根目录/build-tools 文件夹

打开Windows 命令提示符(CMD),通过“appium-doctor”命令检查appium环境。

如果出现“All Checks were successful”的提示,说明基本环境已经配置完成。

安装Python  和  Appium Client 包

Python下载

Python官网:https://www.python.org/downloads/windows/

下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。

配置环境变量

在path添加python安装路径即可(我的路径如下:)

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe

CMD 输入python

表示环境安装成功

集成开发环境PyCharm

PyCharm 下载地址 : https://www.jetbrains.com/pycharm/download/

安装 PIP 命令 (方便以后安装其他三方包)

进入python Scripts 目录

cd C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts

执行 easy_install.exe pip命令

Scripts文件夹下会出现一系列和pip有关的文件,其中有pip.exe。

pip.exe的路径也添加到环境变量PATH中

输入命令pip如果识别成功则配置完成(可以使用pip 来安装三方包了)

安装Appium Client      pip install Appium-Python-Client   

安装selenium              pip install  selenium


所有的环境配置结束


启动Appium

appium(按需选择)    通过CMD命令行启动

appium                      #直接启动appium

appium --no-reset           #不重置app

appium --session-override   #覆盖登录信息


USB数据线连接手机

先打开手机的开发者选项,打开USB调试模式 (华为:设置—开发者选项—USB调试)

USB数据线连接手机,提示选择访问数据模式

使用命令adb devices 查看手机是否连接成功(如果失败,有可能是手机助手占用端口,结束手机助手进程即可)

如果出现该提示则连接成功

一.编写python脚本

首先要获取app的package name 和 launchable activity name

查看pack name和activity name  方法如下:

1.进入安卓build-tools      cd D:\android-sdk-windows\build-tools\

2.输入命令 aapt dump badging C:\Users\Administrator\Desktop\youapp.apk  (我这里是把安卓的APK放到了桌面上,如果报错,可能是工具问题,将build-tools替换即可  https://pan.baidu.com/s/1MCNpyo7rlWsixHSqk9wV3Q)

3.找到并记录

获取driver

打开pycharm 新建py文件,并编辑以下代码

from appiumimport webdriver

desired_caps = {}

desired_caps['platformName'] = 'android'

desired_caps['platformVersion'] = '7.0'

desired_caps['deviceName'] = 'Android Emulator'

desired_caps['appPackage'] = ‘app package name’(你的app包名)

desired_caps['appActivity'] = ‘app launchable-activity(你的app Activity名)

desired_caps['automationName'] = 'uiautomator2'

driver=webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

 

连接真机并启动appium   命令行输入:appium

在pycharm空白处右击,run运行脚本 如果能成功打开手机app  则表示连接成功


二.使用uiautomatorview 查看定位框架元素

运行D:\android-sdk-windows\tools下的 uiautomatorviewer.bat

打开下图UI界面



点击右上角的手机图标抓取元素(可以先打开你要测试的App然后点图标,获取的就是app的元素了)


在右边可以看到已经成功获取到元素


我们接着在上面连接手机的代码下继续编码

1.获取并操作元素

连接手机后获得一个driver对象,操作drive对象来操作元素

可以通过class,resource-id ,xpath(需要自己编写)  来定位元素 (元素信息在node_detail 即右下角)

driver.find_element_by_id('com.huawei.android.launcher:id/dock_divider')

driver.find_element_by_class_name('com.huawei.android.launcher')


一般方法有click,get_attribute,send_keys

driver.find_element_by_id('com.huawei.android.launcher:id/dock_divider').click()

driver.find_element_by_class_name('com.huawei.android.launcher').send_keys('aaa')

driver.find_element_by_class_name('com.huawei.android.launcher').get_attribute('text')


其他详细的方法可以百度查询


进行断言

通过继承python自带的测试框架 unittest 可以使用它的断言方法

也能自己编写断言例如通过判断页面title来断言页面是否跳转成功

Title=driver.find_element_by_id('title_id').get_attribute('text')

If Title != ‘首页’:

    raise print('页面跳转失败')

Else:

    Print (‘页面跳转成功’)



后面可以学习python的unitest 框架,数据驱动模式,以及代码封装和对象操作 ,提高代码质量

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