APP自动化

一、Appium+robot framework环境搭建

(一)、JDK环境配置(安装java)

1.安装JDK

image.png

安装包中jdk-8u121-windows-x64.exe, 双击打开一路next。

image.png

2.配置环境变量:

(1)我的电脑右键属性--->>高级系统设置-->>环境变量

image.png

新建系统变量: 变量名为:JAVA_HOME, 变量值为:安装的java文件夹(默认为C:\Program Files\Java\jdk1.8.0_121)

然后系统变量Path进行下面操作:

如果系统为win7:

往Path里添加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

如果系统为win10: Path里点新建,

将%JAVA_HOME%\jre\bin与%JAVA_HOME%\bin加入。

image.png

3.如何验证安装成功? win+r键输入cmd,输入java -version如果为如下界面既为安装成功。

image.png

(二)、安装Android SDK, 配置SDK环境

1.解压安装包中的android-sdk_r24.4.1-windows.zip

image.png

2.点开解压出的文件夹中的SDK Manager.exe

进行下载相关插件,需要下载哪些,如下图所示,Tools中的build-tools, paltform-tools以及extra中的全部。

image.png
image.png

将上述打上勾之后,点击install xx package按钮。

点击完毕之后,弹出的窗口如下图所示,然后点击Accept Licence, 再点击install既开始下载。

image.png

3.配置环境变量:

(1)新建系统变量, 变量名为ANDROID_HOME, 变量值为1中解压出的文件夹路径

image.png

(2)然后往系统变量Path里添加三个:

第一个:%ANDROID_HOME%\tools,

第二个:%ANDROID_HOME%\platform-tools,

第三个:%ANDROID_HOME%\build-tools\29.0.3

image.png

Win7系统需要一次添加中间用英文分号隔开:

;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.3;

4.检验是否安装成功:win +r 输入cmd,输入adb --version,如为下图所示,既安装成功。

image.png

(三)、安装Nodejs

1.双击安装包中node-v12.18.1-x64.msi,一路next即可。

image.png

2.环境变量会自动加上,所以不用添加环境变量。

3.验证是否安装成功,win+r cmd中输入npm, 结果为如下图所示既成功。

image.png

(四)安装.net framework

1.安装包中的dotNetFx45_Full_setup.exe,双击安装即可。如果提示已经安装过,可以不进行安装。

image.png

(五)、安装Appium

image.png

1.将安装包中的AppiumForWindows_1_4_16_1.zip解压,然后双击加压出的appium-installer.exe文件,一路next即可。记得勾选添加桌面图标。

2.配置环境变量:

(1)将appnium安装路径下的node_modules.bin文件夹路径加入系统变量path中,如果1中安装步骤为默认则默认文件夹路径为C:\Program Files (x86)\Appium\node_modules.bin

image.png

3.检验安装是否成功:win +r cmd 输入:appium-doctor如下图所示即为成功

image.png

(六)、安装python关于appium的两个包

1.参考web自动化时教的如何配置python pip源,进行配置pip源,使下载速度变快

2.Cmd下执行以下命令, 该命令会同时安装Appium-Python-Client包:

python -m pip install robotframework-appiumlibrary

3.如何检验是否安装成功:cmd下执行python -m pip list, 出现robotframework-appiumlibrary与Appium-Python-Client即成功

image.png

如果为python2: 安装命令需要改为下面两条:

1.python -m pip install Appium-Python-Client==0.26

2.python -m pip install robotframework-appiumlibrary==1.4.1

(七)、安装夜神模拟器

1.安装包中nox_setup_v6.6.1.1_full.exe, 双击安装选择自定义安装,然后选择一个文件夹,点击安装即可。

2.配置环境变量,将安装的文件夹下的bin文件夹路径加入path中,如我将其安装在D:\my_soft文件夹下,就将D:\my_soft\Nox\bin 加入path。

3.将第二大步中Android SDK解压出的文件夹中的platform-tools文件夹下的adb.exe复制到桌面,然后改名为nox_adb.exe, 然后剪切该文件,剪切到夜神模拟器安装文件夹下的bin目录下,会提示你替换文件,点击替换即可。 如我将夜神模拟器安装到了D:\my_soft\Nox文件夹下,

那么就剪切到D:\my_soft\Nox\bin文件夹下。

image.png
image.png

这步操作是为了将Android SDK中的abd与夜神模拟器中的nox_adb.exe版本保持一致,如果不一致,会导致adb无法连接夜神模拟器。 cmd输入命令 adb --version后回车,再输入nox_adb.exe --version按回车,两个版本一致即可,如下图所示:

image.png

4.配置夜神模拟器中开启的android系统, 点击系统应用中的设置,点击关于平板与电脑,点击5次版本号,即开启开发者模式,然后返回,点击开发者选项,打开usb调试与允许模拟位置。

二、ADB命令

一、什么是ADB

ADB全称是Android Debug Bridge,就是起到调试桥的作用。顾名思义,ADB就是一个Debug工具,是一个安卓端的手机调试终端。

1.ADB devices

主要作用:查看当前已连接的设备,连接的计算机的安卓设备将会以列表的形式显示;(连接计算机的Android设备或者模拟器)

2.ADB install

ADB install <apk文件路径>主要作用:将指定的apk安装到设备上,

安装的apk包会放在/data/app目录下

几个参数:

-r 强制安装

-d 真机,多个设备中只有一个真机适用

-e 模拟器,多个设备中只有一个模拟器适用

-s 指定设备,后接序列号

ADB -s 44a188f9 install -r test.apk(其中44a188f9是序列号,通过ADB devices可获取)

<apk文件路径>可以从本地文件夹拖到终端中;

3.ADB uninstall

ADB uninstall<apk包名>主要作用:卸载设备上的指定程序。

ADB uninstall -k <apk包名>

-k参数作为卸载软件时保留配置和缓存文件

4.ADB reboot

重启安卓设备

5.ADB shell

ADB shell进入手机目录,可以使用linux的命令。由于安卓是基于linux内核的操作系统。因此,在安卓上可以执行shell命令。

如果只想执行一条shell命令就可以采用ADB shell[linux命令]

在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息

6.ADB shell su

前提手机已经root,获取ADB shell的root权限

使用su提权,用户命令提示符由$变为#,如果手机没有root,会提示su:permission denied

7.ADB shell ps/top

查看当前终端中的进程信息

8.ADB pull和ADB push

ADB pull<设备中的文件路径><本地路径>:从模拟器或设备中复制文件到本地

ADB push<本地文件路径><设备中的路径>:将本地文件或目录复制到设备和模拟器

这里还涉及到一个权限的问题,在后续在做介绍

9.ADB logcat

主要作用:查看系统日志在命令行中显示调试信息。

可以通过过滤来查看指定信息,过滤指定字符串

ADB logcat |grep MyApp

也可以通过后面跟优先级来仅查看指定错误日志优先级日志

ADB logcat *:w

//显示所有优先级大于等于“warning”的日志

//优先级是下面的字符,顺序从低到高:

V-明细 verbose(最低优先级)

D-debug调试

I-info 信息

W-warn警告

E-error 错误

F-fatal 严重错误

S- silent 无记载

ADB logcat -t 10 输出最近10行日志

ADB logcat -c 清空缓存日志

ADB logcat -d 输出缓存日志

10.ADB shell monkey

跑monkey是Android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入、触摸屏输入、手势输入等。当monkey程序在模拟器或设备运行的时候,如果用户点击、触摸、手势或一些系统级别的事件的时候,他就会产生随机脉冲,所以可以用monkey的随机重复方法对apk做压力测试,来测试Android app的稳定性

image.png

说明:

第一个-s指定设备,如果只连接了一台设备,可不用该参数;

-p <apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的说有app,也可以指定多生成器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也是相同的。

-v 用于指定反馈信息级别,总共分为level0、level1、level2三个级别,级别越高输出日志越详细。

--throttle<毫秒数> 指定用户操作事件的时延

--ignore-crashes指定当应用程序崩溃时,monkey依然发送事件,直到事件计数完成;

--ignore-timeouts当应用程序发生ANR错误时,monkey依然会发送事件,直到事件计数完成;

第二个-s用于指定伪随机数

最后的数字;表示monkey程序模拟500次随即用户操作事件

输出结果到D:\monkeylog.txt

终止一个monkey命令可以用kill

kill用来终止一个进程,比如我们再跑monkey的时候怎么强制关闭monkey呢?可以用kill <monkey 进程PID>

另开启一个cmd,找到monkey的pid号,然后杀掉即可。

image.png
image.png

三、Appium+robot framework使用

一、开启步骤

1.打开夜神模拟器

image.png

2.双击桌面appium图标,打开appium

image.png

3.打开一个命令行窗口(win+r cmd)

输入adb devices, 结果如下图所示,就是连接模拟器成功。

image.png

4.打开ride.py 就是ride编辑器。

(1)新建项目,新建测试套件,新建测试用例。

(2)在测试套件处,导入AppiumLibrary包

image.png

二、怎么定位元素

1.使用工具, uiautomatorviewer.bat

是在安装的Android SDK文件夹下的tools文件夹的uiautomatorviewer.bat

双击打开,会弹出这样的窗口,点击按钮,会显示你的模拟器页面。

image.png

定位方式:

Id: 就是该页面显示的resource_id, ride里写法id=xxx

Text: 页面上展示的text, ride里写法: xpath=//*[@text=”xxxx”]

坐标的定位方式

Xpath

image.png

三、常用关键字介绍

1.Open Application

(1)第一个参数:http://localhost:4723/wd/hub 用来连接appium, 端口号为appium开启时显示的。

(2)第二个参数(固定写死):platformName=Android 用来表示是什么系统

(3)第三个参数:platformVersion=xxxxx

①Xxxx使用adb命令来获取:adb shell getprop ro.build.version.release 该命令执行后显示的什么,这个参数的值就写成什么

image.png

(4)第四个参数:deviceName=xxxxxx

①xxxxx使用abd命令来获取:adb devices -l 执行后, 结果中的model值,如下图所示,那么该参数的值就是SM_N960F

image.png

(5)第五个参数(固定写死):automationName=appium 使用的自动化驱动名

(6)第六个参数:appPackage=xxxxxx

(7)第七个参数:appActivity=xxxxxx

①第六个参数和第七个参数可以使用同一个adb命令来取到:adb shell dumpsys activity | findstr “mResume”

②怎么使用这个adb命令

1)夜神模拟里把你想要测试的app打开

2)在cmd中输入这个adb命令

adb shell dumpsys activity | findstr “mResume”

如果该命令输入后不显示,那么就,先adb shell 进入安卓系统,然后执行

dumpsys activity | grep “mResume”

image.png

(8)第八个参数: unicodeKeyboard=True input text输入中文的时候会没有效果,启动时需要添加这个参数。

image.png

2.Close Application 关闭app,不需要任何参数

3.Click Element 定位方式

4.Click A Point x=整数 y=整数

5.Input text+位置+输入内容

(1)输入内容为中文的时候,会没有效果

(2)需要这样操作,第八个参数写上再写一个变量前面要写个u

image.png

6.Clear text 位置

7.Go back 返回

8.Swipe

a点的x值 a点的y值 b点的x值 b点的y值

从a点拖b点所用时间单位是ms

(1)实现的功能是从a点拖到b点

(2)如果是实现上下拉, 坐标点的x值不用变。只需要变化y值

(3)值为0的时候比较特殊,如果坐标点的x值或者y值写的是0的话,是取x或者y的最大值的一半。

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