Appium云测试环境搭建手顺(安卓)
Appium Server主机环境搭建
安装ssh
- 安装openssh-server
sudo apt-get install openssh-server
- 确认ssh-server是否启动
ps -e | grep ssh
如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:
sudo /etc/init.d/ssh start
说明:ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号。 - 重启SSH服务:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
- 在别的机器上登陆本机:
ssh test@192.168.0.27
test为192.168.0.27本机上的用户名,需要输入密码。
断开连接:exit
安装nodejs
在终端执行命令sudo apt-get install node.js
说明:如果出现"无法定位软件包"的报错,可能的一个原因是因为安装过后没有更新软件源,试试用 sudo apt-get update
命令更新一下软件源。
安装cnpm
在终端执行命令sudo apt-get install npm
安装cnpm
使用因为npm下载的是国外的资源,国内下载不下来,所以使用cnpm下载
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
安装appium
-
appium server安装
sudo cnpm install -g appium
在安装appium server时可能会报错node和npm的版本不够,导致下载失败
-
更新node的方法
首先安装版本控制器n:
sudo cnpm install -g n
,然后通过版本控制器更新node,其中有三种 命令sudo n latest
安装node最新版本sudo n stable
安装node稳定版本sudo n 10.0.0
安装node指定版本
-
更新npm的方法
使用命令
sudo cnpm install -g npm-upgrade
-
appium client安装
sudo cnpm install -g wd
-
appium doctor安装
sudo cnpm install -g appium-doctor
安装JDK
-
去Oracle官网下载需要安装的jdk版本,我这里用的是jdk-8u251-linux-x64.tar.gz
-
将该压缩包放到/usr/local/jdk目录下,jdk目录需要自己手动创建,也可以叫java,名字自己随意取(见名知意),然后解压该压缩包,输入如下指令:
tar zxvf jdk-8u181-linux-x64.tar.gz
-
配置环境变量,输入命令
sudo vim /etc/profile
编辑文件,在文件末尾添加如下信息:export JAVA_HOME=/usr/local/jdk/jdk1.8.0_251 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jar export PATH=$JAVA_HOME/bin:$PATH
注意:第一行的JAVA_HOME=/usr/local/jdk/jdk1.8.0_181 此处等号右边的是自己的jdk实际解压目录。如果不是该目录则需要改成自己的实际目录,其他不变。
-
编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效:
source /etc/profile
-
查看jdk是否安装成功,输入指令Java -version即可。
-
建立软链接,输入命令
sudo ln -s /usr/local/jdk/jdk1.8.0_251/bin/java /usr/bin/java
安装Android SDK
输入命令sudo wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
下载完成后解压 sudo tar xvzf android-sdk_r24.4.1-linux.tgz
解压完成后,配置环境变量,用vim /etc/profile
进入编辑状态
将下面的代码插入到文件中
export ANDROID_HOME=/usr/local/android_sdk/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
重新加载配置文件,输入:source /etc/profile
显示所有的sdk版本,先进入到android-sdk-linux的tools目录下,输入命令
sudo ./android
打开如下窗口,在其中选择自己需要的插件,之后点击安装。
安装完成后可能会报错platform-tools/adb不存在,出现这个问题的原因是机子是64位的,但是android sdk又是32位的,所以需要执行如下命令:
sudo apt-get install lib32z1 lib32ncurses5 libbz2-1.0:i386 lib32stdc++6
adb安装完成后,连接设备,输入adb devices
,查看连接设备状态,如出现no permissions字样,使用如下方式解决。
-
首先,在未连接Android设备的情况下,输入
lsusb
命令,查看一下Linux下的usb,出现类似如下结果Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller Bus 001 Device 005: ID 0cf3:e005 Atheros Communications, Inc. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
-
然后,打开android设备的usb调试模式,连接到Linux电脑上,再次输入
lsusb
命令,出现类似如下结果Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller Bus 001 Device 005: ID 0cf3:e005 Atheros Communications, Inc. Bus 001 Device 019: ID 2207:0010 # 此条新增的条目,就是新连接的android设备 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
如上则可以查看到新连接的Android设备信息,注意其ID号,这里是
2207
和0010
,记录下来,之后的操作会用到。 -
然后
cd /etc/udev/rules.d/
目录下,编辑.rule
文件。cd /etc/udev/rules.d/ ls # 结果如下,名称可能不同 70-snap.core.rules # 然后编辑该文件 sudo vim 70-snap.core.rules # 然后加入如下代码 SUBSYSTEM=="usb",ATTRS{idVendor}=="2207",ATTRS{idProduct}=="0010",MODE="0666"
这里
2207
和0010
则分别是上一步中查看到的android设备的ID信息,MODE表示权限。 -
重启设备
sudo chmod a+rx /etc/udev/rules.d/51-android.rules sudo service udev restart
至此,拔掉usb重新连接,再次输入adb devices得到结果显示正常。
List of devices attached
0123456789ABCDEF device
测试主机环境搭建
安装python
下载地址: ftp://192.168.64.212/Software/Python/
用户名: ftpuser
密码 : dtc@2019
下载安装包 python-3.8.2-adm64.exe
下载完成后,双击安装,注意要勾选:Add Python 3.8 to PATH
之后一路next,安装完成后,在cmd中输入python,出现以下提示信息,表示安装成功。
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
在安装python之后需要安装一些测试脚本中需要用到的包,这里建议使用idea- > Setting ->Project:PythonAppiumTestProject ->Project Interpreter添加包,比如Appium-Python-Client和paramiko,否则利用pip命令安装时需要下载VC++ 14.0 build tools环境。
测试脚本编写注意事项
1.创建ssh对象需要写在线程方法内,创建ssh对象启动appium server后,这个ssh进程已被占用监听appium server,在测试结束前不能使用这个ssh进程进行其他操作,如有需求,需另外再创建一个ssh对象。
2.使用ssh发送非linux内置命令,需要使用bash -lc 'command’形式执行command,否则会报命令找不到的错误。