appium+java+selenium环境搭建和使用方法
写博客是用来总结学习知识和成果的,转发请注明出处,谢谢
一、安装Appium需要的软件:
1、node.js:下载完安装包后,解压成文件夹,配置环境变量
在cmd中输入npm,安装成功如图:
2、.netframework 版本最好是4.5以上
3、android sdk,我的网盘中有集成好的sdk,可以使用。
4、安装appium,通过“appium-doctor”命令检查appium环境,安装成功如图:
5、android模拟器在eclipse的windows中。
6、如果代码需要用testng,也要将testng的jar包放进eclipse中。将features中的文件夹放进eclipse中的features文件夹中。将org.testng.eclipse_6.8.6.20130607_0745文件夹放进eclipse的plugins文件夹中。
环境变量配置如下:
二、demo
1、打开eclipse,打开android模拟器,创建模拟器信息,配置参数,如图:
2、点击start后点击Launch,即可启动。如图:
3、耐心等待android模拟器启动,大概20s左右,如图:
4、打开Appium,点击右上角的启动按钮,如图:
5、用uiautomatorviewer对测试app的元素(button、text Field)进行抓取,比如通过id、class和text等来确定具体的元素。 uiautomatorviewer在sdk中的tools中。双击后即可启动,点击第二个按钮,即可链接到android模拟器上,如图:
2、创建Java Project,代码如下:
package demo;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
/**
* @author YBB
* 测试计算器1+2=3
*selenium2.46.0的jar包和java-client2.2.0的jar包要版本对应,否则结果不正确
*/
public class test {
private AppiumDriver driver;
@BeforeClass
public void setup() throws MalformedURLException {
//设置自动化相关参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("automationName","Appium");
capabilities.setCapability("deviceName", "emulator-5554");//指定测试机的ID,通过adb devices获取
//设置安卓系统版本
capabilities.setCapability("platformVersion", "4.4.2");
//设置apk路径
// capabilities.setCapability("app", "D:/appium");
capabilities.setCapability("appWaitActivity","com.android.calculator2.Calculator");
capabilities.setCapability("sessionOverride", true);//每次启动时覆盖session,否则第二次后运行会报错不能新建session
//设置app的主包名和主类名
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
//初始化
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
@Test
public void myTest() throws InterruptedException {
driver.findElement(By.id("com.android.calculator2:id/digit1")).click();
Thread.sleep(1000);
driver.findElement(By.id("com.android.calculator2:id/plus")).click();
Thread.sleep(1000);
driver.findElement(By.id("com.android.calculator2:id/digit2")).click();
driver.findElement(By.id("com.android.calculator2:id/equal")).click();
}
@AfterClass
public void testend() throws Exception {
driver.quit();
}
}
eclipse运行查看结果,如图:
android模拟器计算器app,也会自动出现1+2 = 3的自动化输入测试,如图:
Appium查看结果,如图: