appium环境的搭建

Posted 测开工程师成长之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium环境的搭建相关的知识,希望对你有一定的参考价值。

appium环境的搭建

下载、安装JDK&配置Java环境变量

JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

配置环境变量:

​ 1、右键我的电脑--属性--高级--环境变量

​ 2、新建系统变量JAVA_HOME 和CLASSPATH

​ 变量名:JAVA_HOME

​ 变量值:C:\\Program Files\\Java\\jdk1.7.0

​ 变量名:CLASSPATH

​ 变量值:.;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;

​ 3、选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加 到Path变量的值中,并使用半角的分号和已有的路径进行分隔。

​ 变量名:Path

​ 变量值:%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin;

验证配置是否成功:重新打开控制台输入:java -verison,如果显示Java版本信息表示安装成功。

下载、安装SDK、ADT&配置android环境变量

ADT:[http://developer.android.com/sdk/index.html](file:///D:/Users/dctang/Desktop/doc/  http:/developer.android.com/sdk/index.html)

配置环境变量: 1、右键我的电脑--属性--高级--环境变量

​ 2、在系统变量域中新建ANDROID_HOME变量

​ 变量名:ANDROID_HOME

​ 变量值:E:\\appium\\adt-bundle-windows-x86_64-20131030\\sdk\\(根据实际情况而定)

​ 3、选择“系统变量”中变量名为“Path”的环境变量,双击该变量

​ 变量名:path

​ 变量值:;%Android_Home%\\build-tools\\android-4.4;%Android_Home%\\tools;%Android_Home%\\platform-tools(注意:android-4.4要视情况而定)

最后结果如图:

ANDROID_HOME配置如下

系统变量Path配置如下:

下载、安装Appium

cmd版本

安装Node.js

下载地址:http://www.nodejs.org/

1、配置环境变量:

​ 右键我的电脑--属性--高级--环境变量—用户变量

​ 变量名:Path

​ 变量值:D:\\nodejs; d:\\Users\\lcding\\AppData\\Roaming\\npm

2、联网安装Appium 进入cmd命令行

输入: npm install –g appium 或者 npm --registry http://registry.cnpmjs.org install -g appium (推荐这种,npm的国内镜像)

如果需要装1.2.4:npm --registry http://registry.cnpmjs.org install -g appium@1.2.4

注:-g全局参数 多等几分钟,可以看到appium的版本1.xx.xx及安装目录

检查一下appium是否安装成功。 进入cmd命令行,输入appium 提示:Welcome to Appium 说明安装好了

检查appium所需的环境是否OK(这步很重要) 进入Cmd命令行,输入appium-doctor ,出现以下提示,All Checks were successful ,说明环境成功。

exe****版本

下载Windows版本的Appium地址:[https://bitbucket.org/appium/appium.app/downloads/](file:///D:/Users/dctang/Desktop/doc/  https:/bitbucket.org/appium/appium.app/downloads/)下载安装即可

注意:AppiumForWindow版本需要Microsoft .Net Framework 4.5.1支持,在安装Appium的过程中如果没有安装会提示用户安装并跳转到“.Net Framework”下载地址。

安装成功之后点击”Appium.exe”运行即可,运行界面如图:

appium实例:
新建mvn项目:

修改pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>APPUiTest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <aspectj.version>1.8.10</aspectj.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
        </dependency>

        <dependency>
            <groupId>org.darkphoenixs</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>7.0.0</version>
        </dependency>




    </dependencies>

</project>

代码:

初始化driver:
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.iosMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;

public class InitDriver {
	public static void  initDriver() throws Exception {
		File app=new File("C:/Users/Desktop/zhihu.apk");
		DesiredCapabilities caps=new DesiredCapabilities();
		//deviceName是必须项,但是值可以随便写
		caps.setCapability("deviceName", "moniqi");
		//要安装的app路径,路径必须是服务端所在的电脑上存放的apk文件路径
		caps.setCapability("app", app.getAbsolutePath());
		//如果你的安卓是4.2以下,需要使用automationName指定Selendroid
		//caps.setCapability("automationName", "Selendroid");
		//使用appium的输入法,支持中文并隐藏键盘
		caps.setCapability("unicodeKeyboard", true);
		//将输入法重置回设备默认的输入法
		caps.setCapability("resetKeyboard", true);
		//不重签名app
		caps.setCapability("noSign", true);
		//设置driver超时时间,单位s
		caps.setCapability("newCommandTimeout", 600);
		//appPackage表示要启动的应用的包名
//		caps.setCapability("appPackage", "com.zhihu.android");
//		//appActivity表示要启动的应用的起始activity
//		caps.setCapability("appActivity", "com.zhihu.android.app.ui.activity.MainActivity");
//		//appWaitActivity,这个参数的值写的是app启动后真正的界面activity
		caps.setCapability("appWaitActivity", "com.zhihu.android.app.ui.activity.MainActivity1");
		//deviceReadyTimeout修改appium判断设备正常响应的超时时间,默认是5秒
		caps.setCapability("deviceReadyTimeout",30);
		//browserName手机web自动化的浏览器的名字
		//caps.setCapability("browserName", "Chrome");
		//udid表示指定连接某台设备
		caps.setCapability("udid", "127.0.0.1:62001");
		//caps.setCapability("noReset", false);
		caps.setCapability("fullReset", true);
		AndroidDriver<AndroidElement> driver=new AndroidDriver<AndroidElement>(
				new URL("http://127.0.0.1:4723/wd/hub"), caps);
	}
	
	public static AndroidDriver<AndroidElement> initDriver1() throws Exception{
		File app=new File("C:/Users/LXG/Desktop/zhihu.apk");
		DesiredCapabilities caps=new DesiredCapabilities();
		caps.setCapability(MobileCapabilityType.DEVICE_NAME, "xxx");
		caps.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
		caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
		caps.setCapability(MobileCapabilityType.UDID, "127.0.0.1:62001");
		caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 600);
		caps.setCapability(MobileCapabilityType.FULL_RESET, true);
		caps.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.zhihu.android");
		caps.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.zhihu.android.app.ui.activity.MainActivity");
		caps.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true);
		caps.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true);
		caps.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
		AndroidDriver<AndroidElement> driver=new AndroidDriver<AndroidElement>(
				new URL("http://127.0.0.1:4723/wd/hub"), caps);
		
		return driver;
		
	}
	
	
	public static void main(String[] args) {
		try {
			InitDriver.initDriver();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

登录
	public  void login(){
		AndroidElement ignore=driver.findElementById("com.zhihu.android:id/is_private");
		ignore.click();
		AndroidElement cancue=driver.findElementById("android:id/button3");
		cancue.click();
		AndroidElement login=driver.findElementById("com.zhihu.android:id/login_btn");
		login.click();	}

}

以上是关于appium环境的搭建的主要内容,如果未能解决你的问题,请参考以下文章

adb常用指令与APPium环境搭建

Appium环境搭建

appium环境搭建python

appium——appium环境搭建及使用appium进行APP测试

python appium环境搭建

Python 中 appium 环境搭建