Appium移动端自动化测试-Capabilities参数的设置

1:搭建环境

1.1:基本环境的搭建

Appium环境的搭建:https://blog.csdn.net/hujyhfwfh2/article/details/82925424

参见error参考:https://blog.csdn.net/hujyhfwfh2/article/details/82933164

1.2:测试环境是否搭建成功

Maven的pom.xml中需要导入下列依赖

        
        
            io.appium
            java-client
            4.1.2
        


        
        
            org.seleniumhq.selenium
            selenium-java
            2.53.1
        

        
        
            org.seleniumhq.selenium
            selenium-server
            2.53.1
        

测试代码如下

package com.AutoAPP.APP;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;

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

import org.openqa.selenium.remote.DesiredCapabilities;

public class AppTest {
	
	public static void initDriver() throws Exception{
		//zhihu APP在本地电脑的存放路径
		File app=new  File("C:\\Users\\Anndy\\Desktop\\11\\zhihu.apk");
		DesiredCapabilities caps=new DesiredCapabilities();
		//
		caps.setCapability(MobileCapabilityType.DEVICE_NAME, "anything");
		//这个仅仅安装APP的时候需要使用到
		caps.setCapability(MobileCapabilityType.APP,app.getAbsoluteFile());
		//http://127.0.0.1:4723/wd/hub 为Appium的URL连接  
		AndroidDriver driver
		     =new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
			
	}
	
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		initDriver();

	}
}

2:Capabilities参数详解

在使用之前必须创建对象:DesiredCapabilities caps=new DesiredCapabilities();

2.1:MobileCapabilityType.DEVICE_NAME 设备名称

caps.setCapability(MobileCapabilityType.DEVICE_NAME, "anything");

设备的名称 如果设备是安卓 名称任意 如果是IOS的就要写真实的设备名称

2.2:启动的应用包名和启动的应用的起始activity

注意红色的key值一定不能写错 并且要注意大小写

//要启动的应用包名
caps.setCapability("appPackage", appPackage);
//要启动的应用的起始activity

caps.setCapability("appActivity", appActivity);

 

2.3:调用Appium自带输入法和default输入法

注意下列两个必须同步配合使用 否则将会导致严重的后果 (...)

//盗用Appium自带的输入法

caps.setCapability("unicodeKeyBoard", true);

//default成设置前的配置
caps.setCapability("resetKeyBoard", true);

2.4:设置APP从签名属性

因为有的app在重签名之后无法使用

caps.setCapability("noSign", true);

2.5:设置session的超时时间(可有可无)

由于Appium默认的session时间是60s

caps.setCapability("newCommandTimeout", 600);

2.6:设置启动设备的udid

caps.setCapability("udid", "kjioghju890e");

2.7:设置设备连接超时等待时间(可有可无)

设备连接等待时间默认为5S 

caps.setCapability("deviceReadyTimeout",60);

以上出2.5/2.7是非必须的初始化参数之外 其他的都是必须的

3:HelloWord程序 启动手机端"知乎"APP

package com.AutoAPP.APP;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;

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

import org.openqa.selenium.remote.DesiredCapabilities;

public class AppTest {
	
	public static void initDriver(String appPackage,String appActivity) throws Exception{

		DesiredCapabilities caps=new DesiredCapabilities();
		//
		caps.setCapability(MobileCapabilityType.DEVICE_NAME, "anything");
		
		caps.setCapability("appPackage", appPackage);
		//要启动的应用的起始activity
		caps.setCapability("appActivity", appActivity);
		//resetKeyBoard是执行完测试后将设备的输入法重置回原有的输入法
		caps.setCapability("unicodeKeyBoard", true);
		caps.setCapability("resetKeyBoard", true);
		//不对app进行重签名,因为有的app在重签名之后无法使用
		caps.setCapability("noSign", true);
		//设置session的超时时间
		caps.setCapability("newCommandTimeout", 600);
		
		caps.setCapability("udid", "2be8d4ca9805");
		//http://127.0.0.1:4723/wd/hub 为Appium的URL连接  
		AndroidDriver driver
		     =new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
			
	}
	
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		initDriver("com.zhihu.android","com.zhihu.android.app.ui.activity.LauncherActivity");

	}

}

 

你可能感兴趣的:(Appium移动端自动化测试)