Appium+Java+Maven+Android自动化测试框架搭建

声明 部分内容转载于以下文章:
https://www.cnblogs.com/Jadie/p/6061428.html
https://www.cnblogs.com/fnng/p/7683427.html
https://blog.csdn.net/wuguixiaomei/article/details/82977265
https://blog.csdn.net/xl_lx/article/details/78717917

环境搭建:

  • Node.js
  • Android SDK
  • JDK
  • 安卓模拟器
  • appium-desktop
  • Maven
  • IDE - Intellij

开始搭建吧!

  1. 安装Node.js(Appium是使用Node.js平台编写的“HTTP服务器” ,使用Webdriver JSON有线协议驱动iOS和Android会话。因此,在初始化Appium Server之前,必须在系统上预安装Node.js)。安装版本:v10.15.1 地址:https://nodejs.org/download/release/, 选择node-v10.15.1-x64.msi 版本
    验证是否已经安装成功,在dos界面输入命令:node -v, 如图:
    Appium+Java+Maven+Android自动化测试框架搭建_第1张图片

  2. 下载Android SDK (这里也可以直接下载android studio),下载地址:http://tools.android-studio.org/index.php/sdk , 下载.exe文件后,一步步默认安装即可
    Appium+Java+Maven+Android自动化测试框架搭建_第2张图片

  • 编辑两个坏境变量:
    变量名:ANDROID_HOME , 值:sdk安装路径,比如我的:C:\Users\herby\AppData\Local\Android\android-sdk
    并在环境变量Path后面追加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

安装完成了后,sdk目录下含有tools,platform-tools 需要自行到 Android SDK manager ,对默认下载项全部下载

验证是否安装成功,输入命令行:adb ,显示如图:
Appium+Java+Maven+Android自动化测试框架搭建_第3张图片
3. JDK安装:下载JDK1.8版本,直接在官网下载
设置坏境变量:

  • 环境变量名:JAVA_HOME, 值:JDK安装路径,如:C:\Program Files\Java\jdk1.7.0_01
  • 变量名: CLASSPATH, 值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  • 环境变量Path,值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    验证JDK是否安装成功,输入: java -version, 结果如图
    Appium+Java+Maven+Android自动化测试框架搭建_第4张图片
  1. 安装安卓模拟器,我选择的是网易mumu(sdk自带的模拟器一直黑屏,目前还没有解决,难受。)下载地址:http://mumu.163.com/ ,安装一直点下一步即可,安装完成,可以测试下adb连接模拟器, 在dos界面输入命令:adb connect 127.0.0.1:7555 , 成功如下图:我之前已经连接过了,所以它提示已经连接了
    Appium+Java+Maven+Android自动化测试框架搭建_第5张图片

  2. 安装appium-desktop, 下载地址:https://github.com/appium/appium-desktop/releases ,选择合适的版本,比如:appium-desktop-Setup-1.2.4.exe ,我下载是1.8.2 版本,下载安装一键完成,然后启动appium,如下图
    Appium+Java+Maven+Android自动化测试框架搭建_第6张图片
    点击启动,在点击start inspector session(右上角搜索图标),设置Desired capabilities,可以把自己定义好的保存下来,方便下次使用,不然关闭后就会消失掉。
    Appium+Java+Maven+Android自动化测试框架搭建_第7张图片
    点击Start Session 按钮,成功入下图:这里,我用小米便签做测试app
    Appium+Java+Maven+Android自动化测试框架搭建_第8张图片
    Desired Capabilities基本的设置如下:
    设置参考官网:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

  3. 配置Maven:http://maven.apache.org/ 下载之后解压,放在一个指定目录:
    设置环境变量 :

  • 变量名:MAVEN_HOME, 值:maven所在路径
  • 变量名:Path,值:%MAVEN_HOME%\bin

验证是否配置成功,输入命令: mvn -v
Appium+Java+Maven+Android自动化测试框架搭建_第9张图片
maven本地仓库设置:打开Maven 的文件夹,打开conf->settings.xml,配置本地仓库地址,不修改则默认为C盘用户目录下的m2文件,可设置自己本地仓库存放的地址

设置仓库的镜像,在setting.xml文档中添加:

    
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central        
    

如图:
Appium+Java+Maven+Android自动化测试框架搭建_第10张图片
7. 安装Intellij ,官网一键安装即可。
到此环境搭建完毕。

接下来,创建maven的工程文件,开始编写自动化脚本

  • 新建工程:
    Appium+Java+Maven+Android自动化测试框架搭建_第11张图片
    选择maven,填入groudId等 一直next即可,建好如下图:
    Appium+Java+Maven+Android自动化测试框架搭建_第12张图片
  • 添加自动化所需的依赖,写入pom.xml 文件
       
        
        
            io.appium
            java-client
            4.1.2
            test
        

        
        
            org.seleniumhq.selenium
            selenium-java
            3.1.0
        

        
        
            org.testng
            testng
            7.0.0-beta1
            test
        

        
        
            com.google.inject
            guice
            3.0
            test
        

        
            org.junit.jupiter
            junit-jupiter-api
            RELEASE
            compile
        
        
            io.appium
            java-client
            RELEASE
            compile
        

    



  • 下载TestNG插件, settings > Plugins > 搜搜testng, 选中,点击OK
    Appium+Java+Maven+Android自动化测试框架搭建_第13张图片
    下载好并安装,右击工程文件,就会出现下图菜单:
    Appium+Java+Maven+Android自动化测试框架搭建_第14张图片

从现在开始,我们开始编辑脚本。

  • 首先编写一个基础class(Basic.java),配置启动被测app
package util;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeClass;

import java.net.MalformedURLException;
import java.net.URL;

public class Basic{
    public static AppiumDriver driver;
    
    @BeforeClass
    public void setUp() throws InterruptedException, MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "Android Emulator");
        capabilities.setCapability("automationName", "Appium");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "6.0.1");
        capabilities.setCapability("appPackage", "com.xiaomi.notes");
        capabilities.setCapability("app", "C:\\Users\\herby\\Downloads\\xiaomiNotes.apk");
        capabilities.setCapability("clearSystemFiles", true);

        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities );
        Thread.sleep(2000);
    }
}

  • 为了定位元素,创建 BasicPage.java,我们用selenium的PageFactory.initElements()方法进行初始化PageObject
package Pages;

import org.openqa.selenium.support.PageFactory;
import util.Basic;

public class BasicPage {
    public BasicPage() {
        //Initialize PageObject
        PageFactory.initElements(Basic.driver, this);
    }
}

  • 创建Page.java,继承BasicPage类,对元素进行初始化
package Pages;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

public class HomePage extends BasicPage {

    @FindBy(xpath = "//android.widget.ImageButton[@resource-id = 'com.xiaomi.notes:id/notelist_MenuBar_Add']")
    public WebElement btnOfAdd;
}

  • 编写测试脚本 addnotes.java, 继承Basic 类,case:打开笔记app,点击Add按钮
package TestCase;

import Pages.HomePage;
import org.testng.annotations.Test;
import util.Basic;

public class TC01_AddNotes extends Basic {

   HomePage homePage;

    @Test
    public void AddNotes(){
        homePage = new HomePage();

        homePage.btnOfAdd.click();

    }
}

  • 运行脚本,运行前,确保adb已经连接模拟器,appium已启动。
    Appium+Java+Maven+Android自动化测试框架搭建_第15张图片
    运行结果:
    Appium+Java+Maven+Android自动化测试框架搭建_第16张图片
    待续…

你可能感兴趣的:(安卓自动化测试)