本文内容参考虫师的教程,在此基础上做了验证更新。

系统环境:

windows 2012 R2

应用软件:

Appiumnode.jsappium clientEclipsePython

资源站点:

      Appium官方网站:http://appium.io/

      node.js官方网站:https://nodejs.org/

      Eclipse官方网站:http://www.eclipse.org/

      Python官方网站:https://www.python.org/

一、系统配置

1、初始环境设置如下图:

Appium移动自动化测试环境部署_Python脚本

  • 修改主机名

  • 关闭防火墙

  • 启用远程桌面

  • 关闭IE增强安全配置

  • 启用Windows更新并更新系统

2、添加角色和功能

Appium移动自动化测试环境部署_自动化测试_02

Appium移动自动化测试环境部署_环境部署_03

Appium移动自动化测试环境部署_Java脚本_04

Appium移动自动化测试环境部署_Python脚本_05

Appium移动自动化测试环境部署_Python脚本_06 


配置完成!!


二、安装Appium               

1、安装node.js

node.js官方网站:https://nodejs.org/

Appium移动自动化测试环境部署_Java脚本_07

 

下载完成,双击进行安装,如下图。

Appium移动自动化测试环境部署_自动化测试_08


安装完成,打开Windows 命令提示符,敲入“npm”命令回车。


Appium移动自动化测试环境部署_自动化测试_09

 

如果出现如上图信息,表示node.js安装成功。

 

2、安装Appium

方式一:npm安装:

npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。


Windows PowerShell输入:


npm install -g appium

Appium移动自动化测试环境部署_Python脚本_10


方式二:官网下载安装程序直接安装


下载链接:https://bitbucket.org/appium/appium.app/downloads/


Appium移动自动化测试环境部署_自动化测试_11

                     

将下载的AppiumForWindows_1_4_0_0.zip进行解压,如下:

Appium移动自动化测试环境部署_Java脚本_12


双击“appium-installer.exe”进行安装。根据提示,一步一步进行安装。最终在会桌面上生成Appium图标


Appium移动自动化测试环境部署_自动化测试_13

 

双击图标:

 

Appium移动自动化测试环境部署_自动化测试_14


安装成功!

 

三、安装Android虚拟机

1、安装JDK

官网下载地址:http://www.java.com/zh_CN/download/manual.jsp


下载完成后安装:


Appium移动自动化测试环境部署_自动化测试_15



设置安装路径。这里我们选择默认安装在:

 C:\Java\jdk1.8.0_51


设置环境变量:


 “我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建..

变量名:JAVA_HOME 
变量值:C:\Java\jdk1.8.0_51 
变量名:CALSS_PATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

找到”Path”变量名—>“编辑”在头部添加:


变量名:PATH
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

验证安装:

  Windows PowerShell输入:

javac

  

得到以下输出表示安装成功:


Appium移动自动化测试环境部署_自动化测试_16


2、安装Android ADTSDK


ADT(Android Development Tools) 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。adt只是一个eclipse的插件,里面可以设置sdk路径。

 

SDK(Software Development Kit) 一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,他为开发者提供了库文件以及其他开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发。

 

SDK官方下载地址:

https://dl.google.com/dl/android/studio/install/1.3.2.0/android-studio-bundle-141.2178183-windows.exe


ADT官方下载地址:

https://dl.google.com/android/ADT-23.0.6.zip

 

下载后双击安装SDK,安装完成后,将ADT包解压到SDK安装目录并覆盖。


设置环境变量:

 

“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建..

变量名:ANDROID_HOME 
变量值:C:\Program Files(x86)\Android\android-sdk

变量名:APPIUM_HOME 
变量值:C:\Program Files(x86)\Appium\node_modules\.bin;

找到Path变量名—>“编辑”最后添加:

变量名:PATH
变量值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%APPIUM_HOME%;

3SDK Manager安装模拟器

进入android-sdk目录,双击启动SDK Manager.exe 程序,更新

Appium移动自动化测试环境部署_环境部署_17

 

更新代理配置

 

Android SDKManager 的菜单栏上点击“Tools---->Options...”设置相关代码,如下图:

 

Appium移动自动化测试环境部署_Java脚本_18

 

选择需要安装的程序,开始更新

Appium移动自动化测试环境部署_Python脚本_19

 

检查appium环境

 

WindowsPowerShell输入:

appium-doctor


得到如下输出表示安装成功!!

 

Appium移动自动化测试环境部署_自动化测试_20

 

4、创建Android虚拟机

进入android-sdk目录,双击启动AVD Manager.exe 程序

 

Appium移动自动化测试环境部署_环境部署_21

 

Appium移动自动化测试环境部署_Python脚本_22

 

AVD Manager 窗口,点击“Start...”按钮启动android 模拟器。

Appium移动自动化测试环境部署_Java脚本_23

 

Appium移动自动化测试环境部署_环境部署_24

 

因为新虚拟机没了实体键,所以我们可以利用键盘按键来操作android虚拟机。

Appium移动自动化测试环境部署_自动化测试_25


四、安装Appium Client

Appium Client是对webdriver原生api的一些扩展和封装。它可以帮助我们更容易的写出用例,写出更好懂的用例。

Appium Client是配合原生的webdriver来使用的,因此二者必须配合使用缺一不可。

Appium支持Ruby、Java、Python等编写自动化测试脚本

1、安装Python

官方下载链接:https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi


下载完成后,双击安装:

Appium移动自动化测试环境部署_自动化测试_26

2、安装Appium-Python-Client

通过pip安装

WindowsPowerShell输入:       

 cd C:\Python27\Scripts
 
 .\pip2.7.exe installAppium-Python-Client


 

Appium移动自动化测试环境部署_环境部署_27

 

安装完成!!


五、安装Eclipse

1、下载并解压

官方下载链接:

http://ftp.daumkakao.com/eclipse/technology/epp/downloads/release/mars/R/eclipse-jee-mars-R-win32-x86_64.zip

 

将安装文件解压到C盘根目录,运行...

 

Appium移动自动化测试环境部署_自动化测试_28

2、环境配置(Python

打开Eclipse,点击帮助》安装新软件

Appium移动自动化测试环境部署_环境部署_29

 

Work with:输入

python - http://pydev.org/updates

Appium移动自动化测试环境部署_环境部署_30

 

点击完成,等待安装完成后重新启动Eclipse

 

重启后点击窗口》首选项

 

Appium移动自动化测试环境部署_自动化测试_31

 

在首选项中选择Python环境变量,点击新建,并选择Python安装目录...确定

 

Appium移动自动化测试环境部署_Java脚本_32

 

六、测试

1、启动android模拟器

 

进入android-sdk目录,双击启动AVD Manager.exe 程序,选择配置好的镜像,点击启动

 

Appium移动自动化测试环境部署_Java脚本_33

Appium移动自动化测试环境部署_Java脚本_34


2、启动Appium

 Appium移动自动化测试环境部署_Java脚本_35

 Appium移动自动化测试环境部署_Java脚本_36

 

然后点击右上角的“三角”按钮启动Appium

Appium移动自动化测试环境部署_自动化测试_37

 

3、编写Python自动化测试脚本

打开Eclipse,选择菜单中【file】》》new》》other

Appium移动自动化测试环境部署_Python脚本_38

Appium移动自动化测试环境部署_自动化测试_39

Appium移动自动化测试环境部署_环境部署_40

Appium移动自动化测试环境部署_环境部署_41


编写一个测试脚本

#coding=utf-8
from appiumimport webdriver
 
desired_caps ={}
desired_caps['platformName']= 'Android'
desired_caps['platformVersion']= '4.4.2'
desired_caps['deviceName']= 'Android Emulator'
desired_caps['appPackage']= 'com.android.calculator2'
desired_caps['appActivity']= '.Calculator'
 
driver =webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
 
driver.find_element_by_name("1").click()
 
driver.find_element_by_name("5").click()
 
driver.find_element_by_name("9").click()
 
driver.find_element_by_name("delete").click()
 
driver.find_element_by_name("9").click()
 
driver.find_element_by_name("5").click()
 
driver.find_element_by_name("+").click()
 
driver.find_element_by_name("6").click()
[
driver.find_element_by_name("=").click()
 
driver.quit()


Appium移动自动化测试环境部署_Java脚本_42


点击运行后,可在虚拟机中看到运行结果。


4、编写Java自动化测试脚本

Eclipse中新建Java项目Javatest

Appium移动自动化测试环境部署_环境部署_43

 

(1)导入SeleniumAppium类库


http://selenium-release.storage.googleapis.com/2.44/selenium-java-2.44.0.zip


http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar


https://search.maven.org/remotecontent?filepath=io/appium/java-client/1.2.1/java-client-1


将文件下载后保存到一个文件夹中,然后导入:

Appium移动自动化测试环境部署_自动化测试_44

Appium移动自动化测试环境部署_自动化测试_45 

配置构建路径:

Appium移动自动化测试环境部署_环境部署_46

 

Javatest项目下新建文件夹apps,将ContactManager.apk拷入

 

Appium移动自动化测试环境部署_环境部署_47

 

Javatest项目下新建包Phonetest

 

在包Phonetest新建文件AndroidContactsTest.java

 

文件内容如下:

 

package Phonetest;
 
importio.appium.java_client.android.AndroidDriver;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
importorg.openqa.selenium.By;
importorg.openqa.selenium.WebElement;
importorg.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
import java.net.URL;
import java.util.List;
 
public classAndroidContactsTest {
    private AndroidDriver driver;
 
    @Before
    public void setUp() throws Exception {
        // set up appium
        File classpathRoot = newFile(System.getProperty("user.dir"));
        File appDir = new File(classpathRoot,"apps");
        File app = new File(appDir,"ContactManager.apk");
        DesiredCapabilities capabilities = newDesiredCapabilities();
       capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
       capabilities.setCapability("platformName","Android");
       capabilities.setCapability("deviceName","AndroidEmulator");
       capabilities.setCapability("platformVersion","4.4");
       capabilities.setCapability("app", app.getAbsolutePath());
       capabilities.setCapability("appPackage","com.example.android.contactmanager");
       capabilities.setCapability("appActivity",".ContactManager");
        driver = new AndroidDriver(newURL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }
 
    @After
    public void tearDown() throws Exception {
        driver.quit();
    }
 
    @Test
    public void addContact(){
        WebElement el = driver.findElement(By.name("AddContact"));
        el.click();
        List<WebElement> textFieldsList =driver.findElementsByClassName("android.widget.EditText");
       textFieldsList.get(0).sendKeys("Some Name");
       textFieldsList.get(2).sendKeys("Some@example.com");
        driver.swipe(100, 500, 100, 100, 2);
       driver.findElementByName("Save").click();
    }
}


运行

Appium移动自动化测试环境部署_环境部署_48


点击运行后,可在虚拟机中看到运行结果。