使用 Appium 做测试
文章目录
本文使用 Windows7 64bit 操作系统。如果你的操作系统不是 64 位的,不可直接使用下文中提供的地址。但是文末给出了各个软件对应操的作系统下载链接,请根据自己的系统自行选择对应的下载,以免误伤自己,毕竟折腾很容易受伤。
Python 的安装
Python 的安装方式有很多,这里选择 Anaconda
安装, Anaconda
是一个用于科学计算的 Python 发行版,包含了众多流行的科学计算、数据分析的 Python 包。使用起来比较方便。
点击Anaconda3-5.2.0-Windows-x86_64.exe下载,由于官网在国外下载速度非常慢,所以这里使用清华镜像来下载。
下载好之后,一路点击下一步,稍等片刻完成安装。
Java 的安装
下载JDK,然后运行安装程序。
选择安装的位置,这里需要注意一下,不要选择带有特殊字符(比如:空格之类的)和带有中文的路径,以免反生不明所以的错误。
安装位置这里需要记一下,等下用来配置环境变量,如果你和图上选择的路径的不一样,在设置环境变量时请跟着修改。
由于 JDK
中包含了 JRE
所以这里直接取消,不在进行安装,安装也是可以的。

配置环境变量
接下来进行 Java
的环境变量配置。在计算机中右键->属性

选择高级系统设置

点击环境变量

点击新建

变量名输入(变量名要大写) JAVA_HOME
,变量值输入刚才安装的路径,如果改过安装路径,请选择正确的安装路径。我这里是 C:\Java
,输入完后点击确定保存。

和上一步一样,点击新建。设置变量名为 Path
,变量值为 %JAVA_HOME%\bin
。 其中 %%
的意思是引用变量的值,所以这里 Path
其实是 C:\Java\bin

Android 环境搭建
点击下载AndroidStudio,下载完成后运行安装程序。
点击下一步,出现选择安装路径。和安装 Java
一样选择一个不带有特殊字符和中文的路径。

选择自定义安装

选择 SDK
安装路径,也是需要记住安装路径,用于配置环境变量。

配置环境变量
配置 ANDROID_HOME
,和 Java
配置环境变量在同一个地方。不过这次的变量名是 ANDROID_HOME
,变量值是刚刚 SDK
的安装路径。
右键计算机->属性->高级系统设置->环境变量->新建

除了配置 ANDROID_HOME
还需要把 adb
加入 Path
中,这样才能调试设备。
在环境变量中选择 Path
点击编辑,加入 ;%ANDROID_HOME%\platform-tools
,注意前面有一个 ;
环境变量有多个可以使用 ;
分隔。最后 Path
为 %JAVA_HOME%\bin;%ANDROID_HOME%\platform-tools

Nodejs 的安装
点击Node下载 Node.js,下载完成后运行安装,一直点击下一步。没了,就这么简单。 Nodejs 带有 npm 包管理工具,由于镜像在国外,访问很慢,这里使用淘宝镜像加速。
|
|
appium-doctor 的安装
appium-doctor
是一个用来检查 appium
环境是否安装并配置好的工具,让我们来检测一下上面的步骤都成功了没有。
点击屏幕左下角,在搜索框中输入 cmd
回车

在打开的窗口中输入 npm install -g appium-doctor

安装好之后,输入 appium-doctor
来查看环境是否配置成功。

appium 安装
点击Appium下载,点击安装。没了。 运行起来看看。

一个小例子
经过上面的环境搭建,终于可以测试了,下面使用 Python
来简单的测试计算器的加法。使用时请保证设备安装好了驱动,并能正确连接到电脑。
在用 Python
测试时需要用到 Appium-Python-Client
,先来安装一下。
打开终端
输入
pip install Appium-Python-Client

- platformName 表示要进行测试的平台,分为
Android
和iOS
- deviceName 设备名称,在终端中使用
adb devices
来查看 - appPackage 测试应用的包名
- appActivity 测试应用的界面
- noReset 测试不清除应用数据
|
|
看看效果,还不错

踩过的坑
数据被清除
在使用 Appium 进行测试时,每次都会把要进行测试的软件对应的数据给清除掉。可怜我第一次使用微信进行测试,虽然测通了,但是我重新打开微信的时候,什么都没了。哭晕在厕所。 解决这个问题很简单,只要配置一个参数即可
|
|
测试函数要以 test
开头
跟着官方的例子自己写了一个试试,但是发现还是太年轻,调了好久都没用,最后想起了 Go
语言里测试函数是要以 test
开头的,于是试了一下就通了。