【appium之三】第一个appium的Demo

本文详细介绍如何使用Appium进行Android应用的自动化测试。包括环境搭建、项目配置、测试脚本编写及执行步骤。通过具体案例演示了如何实现对应用内元素的操作及断言验证。

/********************************************************************************************

                           文章参考地址:http://blog.csdn.net/maryshine/article/details/52228483

****************************************************************************************/

一、环境搭建

略(后期补)

二、创建一个测试apk包的项目

Appium_quiz_demo

三、新建项目之后导入jar包、apk等

1、在项目下面创建文件夹:apps、libs,并把要测试的apk安装包及jar包导入项目,准备工作完成后整个 框架如下图所示


注意:java-client和selenium-server-standalone的jar包的版本要对应,最好找齐如上截图所示的版本,要不然会版本冲突导致未知错误

四、新建一个测试Demo:QuizTest.java

package com.test.quiz;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;

public class QuizTest {
	
	public AppiumDriver driver;
	private boolean isInstall = false;
	
	public void startRecord () throws IOException{
		Runtime rc = Runtime.getRuntime();
		//录制屏幕运行视频
		rc.exec("cmd.exe /E:/Android/sdk/platform-tools adb shell screenrecord /sdcard/runCase.mp4");
	}
	
	/**
	 *  开始启动
	 * @throws IOException
	 */
	@Before
	public void setUp() throws IOException{
		// 启动appium
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability("deviceName", "emulator-5554");//指定测试机
		capabilities.setCapability("automationName", "Appium");
		capabilities.setCapability("platformName", "Android");// 指定测试平台
		capabilities.setCapability("platformVersion", "22");//平台版本
		
		// 配置测试apk
		capabilities.setCapability("appPackage", "com.example.quizactivity");//测试的包
		//测试的activity
		capabilities.setCapability("appActivity", "com.example.quizactivity.QuizActivity");
		//每次启动时覆盖session,否则第二次后运行会报错不能新建session
		capabilities.setCapability("sessionoverride", true);
		capabilities.setCapability("unicodekeyboard", true);//设置键盘
		capabilities.setCapability("resetkeyboard", false); //设置默认键盘为appium的键盘  
		driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
		// 初始化
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
		
		// 安装APK,如果真机设备已经安装,则不需要重新安装
		if (isInstall){
			File classpathRoot = new File(System.getProperty("user.dir"));
			File appDir = new File(classpathRoot,"apps");
			File app = new File(appDir,"QuizActivity.apk");
			capabilities.setCapability("app", app.getAbsolutePath());
		}
		startRecord();
		
	}
	
	/**
	 *  点击显示问题
	 * @throws InterruptedException 
	 */
	@Test
	public void PreQuestion() throws InterruptedException{
		driver.findElementById("com.example.quizactivity:id/prev_button").click();// 点击上一个按钮
		Thread.sleep(2000); 
		driver.findElementById("com.example.quizactivity:id/next_button").click();//点击下一个按钮
		Thread.sleep(2000); 
		String tips = driver.findElementById("com.example.quizactivity:id/question_text_view").getText();
		Assert.assertEquals(tips, "The Suez Canal connects the Red Sea and the Indian Ocean.");  
        Thread.sleep(2000);  
	}
	
	
	/**
	 * 结束启动
	 */
	@After
	public void tearDown(){
		driver.quit();
	}

}

其中:

1、指定测试机的获取:adb devices

2、测试包及测试的activity获取:adb shell dumpsys window | findstr mCurrentFocus


3、元素ID的获取:可以利用android-sdk自带的UI Automator Viewer

UI Automator Viewer的目录地址:D:\android\sdk\tools\uiautomatorviewer.bat

双击打开uiautomatorviewer.bat,出现如下图所示页面:


获取PrevButton:


其他值也可以照样获取

 

五、执行appium

1、首先启动appium


2、在eclipse运行测试项目

3、查看手机可以看到APP自动运行所编写的脚本




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值