Appium架构分为两部分,一部分是Appium Client,主要是提供各种各种语言的API,另一部分是Appium Server,用来接收App Client发送的命令然后发送给被测试的移动端,从而进行UI的自动化测试,大致框架结构如下:
因项目中未涉及到IOS系统的软件,目前只进行Android系统的自动化测试。
操作系统:Win 10
Node.js官方网站
> node -v
> npm -v
若出现如下图所示结果,则安装成功
注:默认情况下,node安装时会把安装路径写到环境变量中,若没有写入,可以自己将安装路径写到环境变量中。
appium-doctor是用来检查appium环境是否搭建完成的,但其并不是安装appium的必需步骤。
>npm install -g appium-doctor
>appium-doctor
appium-doctor会检查当前环境是否搭建完成,如下图
如图所示,node、android和java环境时必须的依赖,因此还需要安装android和java环境。
java环境安装的文档有很多,不在此详细描述
1、官网下载安装包
2、配置环境变量
这一部分是最麻烦的地方,由于一些总所周知的原因,Google网站总是无法访问,在此提供一个网站,它专门收集了很多需要使用Android工具包。
1、下载sdk tools,解压到指定安装目录
2、下载sdk platform-tools,解压到指定安装目录,这个包中主要是一些 adb, fastboot 等工具。
3、将这两个目录都配置到系统的path变量中,便于后期直接在命令行使用工具包中的命令。
现在再采用appium-doctor命令检查,会发现基本命令已经安装成功
appium-server提供了桌面版和命令行版,桌面版就是提供了一个可视化界面,更便于操作,命令版直接采用npm安装,命令如下:
>npm install -g appium
桌面版从官方网站进行下载,然后按照提示一步步安装就行了。
不是必须步骤,也可以直接使用真机,为了方便,这里使用Android模拟器,同样,由于Android自身提供的模拟器需要从google官网下载,所以这里选择了夜神模拟器,直接官网下载跟着提示安装就好了。
注:打开夜神模拟器,可能会出现蓝屏的问题,由于windows在后台会默认开一个hyper-v虚拟服务器功能,打开夜神就会冲突,解决办法就是将Hyper-V这个配置关闭。
上述环境配置成功后,现在可以进行验证,目的是使用appium-server连接夜神模拟器。
1、打开夜神模拟器
2、先使用命令查看当前环境中是否有设备连接
C:\Users\huyp>adb devices
第一次输入该命令时,会默认打开对5037端口的监听,如下图所示
3、使用adb命令连接虚拟机设备,夜神默认模拟器端口为62001
C:\Users\huyp>adb connect 127.0.0.1:62001
连接成功后,再次使用adb命令就可查看到连接的设备,如下图所示
这是由于adb server的端口被占用了,解决方案是找到占用端口的进程,然后将进程杀死
>netstat -ano | findstr "5037"
>taskkill /f /pid 进程PID
这是由于adb server和adb client版本不一致导致的,这里adb server版本指的是模拟器中adb程序的版本
client 的版本指的是SDK中adb的程序版本,使用"adb version"命令可以查看adb的版本。解决方案是将SDK中的adb.exe复制到夜神的安装目录的bin文件夹中,并修改名称为nox_adb.exe,记得将原始文件备份哦!
打开Appium桌面应用程序,如下图
这里的Host和Port是提供给Appium Client连接的,使用默认值就好。点击“Start”按钮,进入主界面,主机面就是当前服务器后台的一些日志输出,点击右上角的按钮,打开一个session的配置页面,如下图
输入相关的参数,用来连接到模拟器中的app,这里以系统自带的通讯录为例,如下图:
platformName和platfromVersion就是模拟器的操作系统和版本,可以在模拟器的“设置”中找到“关于手机”页面查看当前模拟器的操作系统信息,如下图,因此,platformName=“Android” platformVersion=“5.1.1”
deviceName就是模拟器的名称,用’'adb devices"命令可以看到,如下图,deviceName=“127.0.0.1:62001”
appPackage和appActivity分别是模拟器上对应app的包名和入口Activity名称。
如果有对应的apk安装包,可以使用appt工具进行查看。
1、下载sdk build-tools,将解压出的整个文件夹复制或者移动到sdk安装路径/build-tools 文件夹即可。
2、将build-tools目录加入到path系统变量中
3、使用命令"aapt dump badging E:\apk\es3.apk"查看apk信息,主要关注两个信息,package:name='com.shenzhou,workmana’和launchable-activity:name=‘com.shenzhou.workmana.NewActivity’,前面就是appPackage,后面是appActivity。
如果没有apk安装包,模拟器上已经安装了app,可以使用adb的logcat命令查看该模拟器的运行日志,从日志中可以找到对应的app信息。
1、使用命令adb logcat查询模拟器日志,将日志保存到文件中方便查看
>adb logcat>D:\log.txt
2、在模拟器中打开通讯录软件
3、查看日志文件,查找包含“Start proc”关键字的日志,就会找到最后打开的通讯录的相关信息,如下图,appPackage=“com.android.contacts” appActivity=".activities.PeopleActivity"
4. 参数配置完成后,点击右下角的“Start Session”,出现如下图所示界面则表示连接成功。
解决方案:将sdk下的build-tools目录中的aapt.exe和zipalign.exe拷贝到platform-tools目录中
所有的步骤完成之后,基本上appium-server端的整个开发环境已经搭建完成了。