一、Appium+robot framework环境搭建
(一)、JDK环境配置(安装java)
1.安装JDK
安装包中jdk-8u121-windows-x64.exe, 双击打开一路next。
2.配置环境变量:
(1)我的电脑右键属性--->>高级系统设置-->>环境变量
新建系统变量: 变量名为: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加入。
3.如何验证安装成功? win+r键输入cmd,输入java -version如果为如下界面既为安装成功。
(二)、安装Android SDK, 配置SDK环境
1.解压安装包中的android-sdk_r24.4.1-windows.zip
2.点开解压出的文件夹中的SDK Manager.exe,
进行下载相关插件,需要下载哪些,如下图所示,Tools中的build-tools, paltform-tools以及extra中的全部。
将上述打上勾之后,点击install xx package按钮。
点击完毕之后,弹出的窗口如下图所示,然后点击Accept Licence, 再点击install既开始下载。
3.配置环境变量:
(1)新建系统变量, 变量名为ANDROID_HOME, 变量值为1中解压出的文件夹路径
(2)然后往系统变量Path里添加三个:
第一个:%ANDROID_HOME%\tools,
第二个:%ANDROID_HOME%\platform-tools,
第三个:%ANDROID_HOME%\build-tools\29.0.3
Win7系统需要一次添加中间用英文分号隔开:
;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.3;
4.检验是否安装成功:win +r 输入cmd,输入adb --version,如为下图所示,既安装成功。
(三)、安装Nodejs
1.双击安装包中node-v12.18.1-x64.msi,一路next即可。
2.环境变量会自动加上,所以不用添加环境变量。
3.验证是否安装成功,win+r cmd中输入npm, 结果为如下图所示既成功。
(四)安装.net framework
1.安装包中的dotNetFx45_Full_setup.exe,双击安装即可。如果提示已经安装过,可以不进行安装。
(五)、安装Appium
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
3.检验安装是否成功:win +r cmd 输入:appium-doctor如下图所示即为成功
(六)、安装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即成功
如果为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文件夹下。
这步操作是为了将Android SDK中的abd与夜神模拟器中的nox_adb.exe版本保持一致,如果不一致,会导致adb无法连接夜神模拟器。 cmd输入命令 adb --version后回车,再输入nox_adb.exe --version按回车,两个版本一致即可,如下图所示:
4.配置夜神模拟器中开启的android系统, 点击系统应用中的设置,点击关于平板与电脑,点击5次版本号,即开启开发者模式,然后返回,点击开发者选项,打开usb调试与允许模拟位置。
二、ADB命令
一、什么是ADB
ADB全称是Android Debug Bridge,就是起到调试桥的作用。顾名思义,ADB就是一个Debug工具,是一个安卓端的手机调试终端。
1.ADB devices
主要作用:查看当前已连接的设备,连接的计算机的安卓设备将会以列表的形式显示;(连接计算机的Android设备或者模拟器)
2.ADB install
ADB install
安装的apk包会放在/data/app目录下
几个参数:
-r 强制安装
-d 真机,多个设备中只有一个真机适用
-e 模拟器,多个设备中只有一个模拟器适用
-s 指定设备,后接序列号
ADB -s 44a188f9 install -r test.apk(其中44a188f9是序列号,通过ADB devices可获取)
3.ADB uninstall
ADB uninstall
ADB uninstall -k
-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的稳定性
说明:
第一个-s指定设备,如果只连接了一台设备,可不用该参数;
-p
-v 用于指定反馈信息级别,总共分为level0、level1、level2三个级别,级别越高输出日志越详细。
--throttle<毫秒数> 指定用户操作事件的时延
--ignore-crashes指定当应用程序崩溃时,monkey依然发送事件,直到事件计数完成;
--ignore-timeouts当应用程序发生ANR错误时,monkey依然会发送事件,直到事件计数完成;
第二个-s用于指定伪随机数
最后的数字;表示monkey程序模拟500次随即用户操作事件
输出结果到D:\monkeylog.txt
终止一个monkey命令可以用kill
kill用来终止一个进程,比如我们再跑monkey的时候怎么强制关闭monkey呢?可以用kill
另开启一个cmd,找到monkey的pid号,然后杀掉即可。
三、Appium+robot framework使用
一、开启步骤
1.打开夜神模拟器
2.双击桌面appium图标,打开appium
3.打开一个命令行窗口(win+r cmd)
输入adb devices, 结果如下图所示,就是连接模拟器成功。
4.打开ride.py 就是ride编辑器。
(1)新建项目,新建测试套件,新建测试用例。
(2)在测试套件处,导入AppiumLibrary包
二、怎么定位元素
1.使用工具, uiautomatorviewer.bat
是在安装的Android SDK文件夹下的tools文件夹的uiautomatorviewer.bat
双击打开,会弹出这样的窗口,点击按钮,会显示你的模拟器页面。
定位方式:
Id: 就是该页面显示的resource_id, ride里写法id=xxx
Text: 页面上展示的text, ride里写法: xpath=//*[@text=”xxxx”]
坐标的定位方式
Xpath
三、常用关键字介绍
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 该命令执行后显示的什么,这个参数的值就写成什么
(4)第四个参数:deviceName=xxxxxx
①xxxxx使用abd命令来获取:adb devices -l 执行后, 结果中的model值,如下图所示,那么该参数的值就是SM_N960F
(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”
(8)第八个参数: unicodeKeyboard=True input text输入中文的时候会没有效果,启动时需要添加这个参数。
2.Close Application 关闭app,不需要任何参数
3.Click Element 定位方式
4.Click A Point x=整数 y=整数
5.Input text+位置+输入内容
(1)输入内容为中文的时候,会没有效果
(2)需要这样操作,第八个参数写上再写一个变量前面要写个u
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的最大值的一半。