原理:

image.png

环境:

java1.8
sdk
maven3.3.9(下方可直接下载,并配置环境变量,请自行百度maven安装配置)
appium-desktop-setup-1.6.2(下方可直接下载)

下载:

appium-desktop-setup-1.6.2.rar
apachemaven_3.3.9.rar
autotestdemo1.2.rar
autotestdemo1.3.rar(在1.2的基础上优化了60s默认连接时长的问题,实现自定义连接时长)

使用:

web自动化:

运行流程:

1、进入autotestdemo\src\main\resources\bin目录中,分别执行mvn-install-util-jar.bat和mvn-install-autotest-jar.bat脚本
2、修改make-code.bat文件中的excelPath和summarySheet参数,如下
set excelPath=D:\IWorkspace\autotestdemo\src\main\resources\projects\web\demo\WebAppDemo.xls
set summarySheet=testsummary
3、执行start-auto-test.bat文件(1,2步第一次执行自动化脚本时执行,今后每次执行仅需执行第3步)

用例编写:

用例位置:

D:\IWorkspace\autotestdemo\src\main\resources\projects\web\demo\WebAppDemo.xls(此工具为已封装工具,用例设计实现excle编写,而不需要使用代码编写)

用例设计:

image.png
image.png

注意:用例步骤中,如果需要定位元素再进行操作,则必须填充相应的Page字段。



app(android)自动化:

运行流程:

1、进入autotestdemo\src\main\resources\bin目录中,分别执行mvn-install-util-jar.bat和mvn-install-autotest-jar.bat脚本
2、修改make-code.bat文件中的excelPath和summarySheet参数,如下
set excelPath=D:\IWorkspace\autotestdemo\src\main\resources\projects\android\demo\androidAppDemo.xls
set summarySheet=testsummary
3、执行start-auto-test.bat文件(1,2步第一次执行自动化脚本时执行,今后每次执行仅需执行第3步)

用例编写:

用例位置:

D:\IWorkspace\autotestdemo\src\main\resources\projects\android\demo\androidAppDemo.xls
android app需要进行配置修改:

image.png
注意:此处apkName字段不要加拓展名.apk,否则会报错。

用例设计:

image.png

image.png

问题及处理办法:

1.确认设备连接adb成功:

在执行 运行流程 第3步 start-auto-test.bat 的时候,必须先开启Appium桌面版和已连接成功的android设备。
我的建议是:在执行这一步之前,先用命令行的方式查看 设备是否已连接成功 如图:
image.png

2.连接不成功处理:

一般真机连接很少会出现问题,虚拟机连接比较容易遇到问题
我这里用的是 夜神模拟器6.2.7.1
如果连接失败且提示如下图:

image.png

说明sdk包里的adb和nox的adb版本不匹配,做法是将sdk包里的sdk覆盖nox的adb,使之版本一致。
具体做法:

image.png

image.png
重启 模拟器 ,再次查看连接状态,已连接成功,如图:

image.png

3.脚本运行出错:

先看模拟器卡在什么位置,看下那个位置的定位元素有没有问题,如果是用的id定位方式,看下id是否唯一(appium自带的定位工具,可以唯一性验证)。确定定位元素没有问题之后,再看下是不是要加sleep,有时候适当加上sleep就能跑通了。

4.未sleep到设定时间,就结束了测试

有可能是因为设定的sleep时间超过了60s,appium默认的session时间为60s,如果60s内无操作,则关闭该session,所以在设定sleep时,不要超过60s。

5.无法加载主类:

如图:
image.png

原因是在安装jdk时带有空格,在需要运行的文件中将 %CLASSPATH% 修改 “%CLASSPATH%” 就可以运行了