Appium+java实现自动化测试第一个demo

来源:互联网 发布:mac版tomcat下载 编辑:程序博客网 时间:2024/05/16 09:31

一.前面我已经搭建好了appium所需要的环境,本文我以系统自带的计算器app为测试对象,进行学习。
二.创建模拟器
模拟器
创建成功
三.在安装appium搭建环境中我们已经安装了SDK,所以打开CMD命令窗口,用 adb devices 命令来查看是否可以检测到手机设备,如果如下图显示出设备,则证明我们可以对手机进行测试操作。
这里写图片描述
记下设备名,测试代码要使用。
四.打开指定测试App的指定Activity
通过上一步操作,我已经看到我的设备是可以操作的了,那究竟应该如何让appium去自动找到指定的APP和指定的Activity呢?想要打开指定的App,需要知道App的包名,同样想要打开指定Activity也需要知道其名,如何获取?

  1、问公司的开发人员,一定可靠。

  2、通过命令获取: adb shell dumpsys window w |findstr \/ |findstr name= (这条命令的作用是,获取当前app和当前Activity的名字,我现在手机已经打开了计算器应用)如图:
  这里写图片描述

包名和Activity的名获取啦!!!
五.打开uiautomatorviewer获取元素
接下来需要用 uiautomatorviewer 对测试app的元素(button、text Field)进行抓取,比如通过id、class和text等来确定具体的元素。 uiautomatorviewer是在android-sdk的一个工具,具体目录 \android-sdk-windows\tools\uiautomatorviewer.bat 。
这里写图片描述

找到1 + 2 = 这四个元素的resource-id

六.创建java项目
我们已经获取到想要的元素,下一步就是用代码编写测试用例了,打开eclipse软件,创建一个java project ,导入依赖包,如图:
这里写图片描述

添加junit test case类
实现代码:
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.testng.annotations.AfterClass;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

public class qxqlo {
private AppiumDriver driver;
@Before
public void setUp() throws Exception {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.BROWSER_NAME, “”);
cap.setCapability(“platformName”, “Android”); //指定测试平台
cap.setCapability(“deviceName”, “emulator-5554”); //指定测试机的ID,通过adb命令adb devices获取
cap.setCapability(“platformVersion”, “5.1”);
//将上面获取到的包名和Activity名设置为值
cap.setCapability(“appPackage”, “com.android.calculator2”);
cap.setCapability(“appActivity”, “com.android.calculator2.Calculator”);
//A new session could not be created的解决方法
cap.setCapability(“appWaitActivity”,”com.android.calculator2.Calculator”);
//每次启动时覆盖session,否则第二次后运行会报错不能新建session
cap.setCapability(“sessionOverride”, true);
driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub“), cap);
}

@Testpublic void testplus() {    //获取1    driver.findElementById("com.android.calculator2:id/digit_1").click();    driver.findElementById("com.android.calculator2:id/op_add").click();    //获取2    driver.findElementById("com.android.calculator2:id/digit_2").click();    //获取=    driver.findElementById("com.android.calculator2:id/eq").click();    //fail("Not yet implemented");}@AfterClasspublic void tearDown() throws Exception {    driver.quit();}

}

七.启动appium,模拟器开着计算器,运行测试类
run as->Junit test
这里写图片描述

八.大功告成
可以查看appium控制台日志,也可以看到,手机端的计算器app,也会自动出现1+2 = 3的自动化输入测试

这里写图片描述

这里写图片描述

成功!!!!!!!!!!

阅读全文
0 1