如何配置 Appium 和 Android Studio?
How to configure Appium and Android Studio?
大家好,我是 appium 的新手,我有 运行 我的第一个测试用例(Java 使用 TestNG)使用 eclipse,但现在我想切换到 Android Studio。请向我提供将 jar 和其他东西添加到 Android Studio
的分步过程
我推荐你使用 IntelliJ IDEA。您可以使用 gradle 创建项目,您可以在其中插入依赖项,但您可以通过 File -> Project structure -> Libraries -> (+) -> Java 轻松包含 .jars 然后 select 你的 .jar 文件。
IntelliJ IDEA 已经安装了 testNG,因此您无需安装它。
为了测试,您只需要 gson-2.2.2、java-client-4.0.0、selenium-java-2.53.1 罐子。
要连接您的设备,请使用 class
public class Setup {
private final String DEVICE_NAME = "deviceName";
private final String PLATFORM_NAME = "platformName";
private final String PLATFORM_VERSION = "platformVersion";
private final String APP_PACKAGE = "appPackage";
private final String APP_ACTIVITY = "appActivity";
private String deviceName = "Android SDK built for x86"; //device name can be found in device settings
private String platformName = "Android";
private String platformVersion = "6.0"; //version of your android
private String port = "4723"; //port from Appium server
private String url;
private String getIp() throws UnknownHostException {
InetAddress ip = InetAddress.getLocalHost();
return ip.getHostAddress();
}
public AndroidDriver establishConnection() throws MalformedURLException {
try {
url = String.format("http://%s:%s/wd/hub", getIp(), port);
} catch (UnknownHostException e) {
e.printStackTrace();
}
DesiredCapabilities capability = new DesiredCapabilities();
capability.setCapability(DEVICE_NAME, deviceName);
capability.setCapability(PLATFORM_NAME, platformName);
capability.setCapability(PLATFORM_VERSION, platformVersion);
capability.setCapability(APP_PACKAGE, "my.app.package");
capability.setCapability(APP_ACTIVITY, "my.app.activity");
return new AndroidDriver(new URL(url), capability);
}
}
在此之后,您可以使用 @BeforeClass
创建新的 class,您可以在其中创建设置 class 的对象,调用 establishConnection();
并初始化驱动程序并测试您的应用程序 UI 与 @Test
方法。不要忘记先在您的设备上安装 .apk :)
您需要在 Android Studio 中设置 Appium -
Appium 服务器
Appium Java 客户端 jar
Selenium 客户端 jar
您可以观看此视频Step By Step Appium Setup with Android Studio
此致,
阿努贾
Android Studio 3.1.2, Min SDK 21. 如果Min SDK较低,可以尝试使用低版本的appium java-client.
通过 gradle 在 gradle 构建文件依赖项部分添加 Java 客户端 Jar。确保
您选择的客户端版本可用于您的 minimum/target android SDK。
dependencies {
testImplementation 'io.appium:java-client:4.1.2'
}
您的 android 项目有一个 java 文件夹用于存放您的源文件。搜索括号中包含单词 (test) 的文件夹。在那里创建一个 java 文件。如果放在(androidTest)文件夹下,会运行陷入各种问题
将您的单元测试代码添加到该文件。就我而言,我使用的是 JUnit。
通过您喜欢的方式安装 appium 服务器。您可以通过 https://github.com/appium/appium-desktop/releases/ 找到安装可执行文件,或者您可以涉足 nodejs 及其包管理器。
配置 appium 服务器的设置以匹配单元测试的设置(即端口应该匹配)。
启动appium服务器。
右键单击您的测试并单击 运行 'XXXXX' 其中 XXXXX 是您的 class.
Select 您想要的 emulator/physical 设备。
不需要像我在某些教程中看到的那样手动下载 jar 并添加它们。如果您按照上述步骤操作,您将拥有所需的东西。
我做了所有的步骤,但重建没有成功,然后我得到了这个作为解决方案:
android {...} 闭包 build.gradle 为您的应用程序模块解决问题:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
所有的错误都解决了。我的 java 版本是 10,但没有用!!
大家好,我是 appium 的新手,我有 运行 我的第一个测试用例(Java 使用 TestNG)使用 eclipse,但现在我想切换到 Android Studio。请向我提供将 jar 和其他东西添加到 Android Studio
的分步过程我推荐你使用 IntelliJ IDEA。您可以使用 gradle 创建项目,您可以在其中插入依赖项,但您可以通过 File -> Project structure -> Libraries -> (+) -> Java 轻松包含 .jars 然后 select 你的 .jar 文件。
IntelliJ IDEA 已经安装了 testNG,因此您无需安装它。
为了测试,您只需要 gson-2.2.2、java-client-4.0.0、selenium-java-2.53.1 罐子。
要连接您的设备,请使用 class
public class Setup {
private final String DEVICE_NAME = "deviceName";
private final String PLATFORM_NAME = "platformName";
private final String PLATFORM_VERSION = "platformVersion";
private final String APP_PACKAGE = "appPackage";
private final String APP_ACTIVITY = "appActivity";
private String deviceName = "Android SDK built for x86"; //device name can be found in device settings
private String platformName = "Android";
private String platformVersion = "6.0"; //version of your android
private String port = "4723"; //port from Appium server
private String url;
private String getIp() throws UnknownHostException {
InetAddress ip = InetAddress.getLocalHost();
return ip.getHostAddress();
}
public AndroidDriver establishConnection() throws MalformedURLException {
try {
url = String.format("http://%s:%s/wd/hub", getIp(), port);
} catch (UnknownHostException e) {
e.printStackTrace();
}
DesiredCapabilities capability = new DesiredCapabilities();
capability.setCapability(DEVICE_NAME, deviceName);
capability.setCapability(PLATFORM_NAME, platformName);
capability.setCapability(PLATFORM_VERSION, platformVersion);
capability.setCapability(APP_PACKAGE, "my.app.package");
capability.setCapability(APP_ACTIVITY, "my.app.activity");
return new AndroidDriver(new URL(url), capability);
}
}
在此之后,您可以使用 @BeforeClass
创建新的 class,您可以在其中创建设置 class 的对象,调用 establishConnection();
并初始化驱动程序并测试您的应用程序 UI 与 @Test
方法。不要忘记先在您的设备上安装 .apk :)
您需要在 Android Studio 中设置 Appium -
Appium 服务器
Appium Java 客户端 jar
Selenium 客户端 jar
您可以观看此视频Step By Step Appium Setup with Android Studio
此致,
阿努贾
Android Studio 3.1.2, Min SDK 21. 如果Min SDK较低,可以尝试使用低版本的appium java-client.
通过 gradle 在 gradle 构建文件依赖项部分添加 Java 客户端 Jar。确保 您选择的客户端版本可用于您的 minimum/target android SDK。
dependencies { testImplementation 'io.appium:java-client:4.1.2' }
您的 android 项目有一个 java 文件夹用于存放您的源文件。搜索括号中包含单词 (test) 的文件夹。在那里创建一个 java 文件。如果放在(androidTest)文件夹下,会运行陷入各种问题
将您的单元测试代码添加到该文件。就我而言,我使用的是 JUnit。
通过您喜欢的方式安装 appium 服务器。您可以通过 https://github.com/appium/appium-desktop/releases/ 找到安装可执行文件,或者您可以涉足 nodejs 及其包管理器。
配置 appium 服务器的设置以匹配单元测试的设置(即端口应该匹配)。
启动appium服务器。
右键单击您的测试并单击 运行 'XXXXX' 其中 XXXXX 是您的 class.
Select 您想要的 emulator/physical 设备。
不需要像我在某些教程中看到的那样手动下载 jar 并添加它们。如果您按照上述步骤操作,您将拥有所需的东西。
我做了所有的步骤,但重建没有成功,然后我得到了这个作为解决方案: android {...} 闭包 build.gradle 为您的应用程序模块解决问题:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
所有的错误都解决了。我的 java 版本是 10,但没有用!!