`
hiskyrisa
  • 浏览: 36921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Study:基于Selenium进行Android客户端自动化测试的例子。

阅读更多

注意:此处省略ADB和Node.js的配置。

 

代码示例:

package com.hisky.seleniumTest;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

/**
 * 
 * @author zhenglin.yang
 * 
 */
public class AndroidTest {
	private static WebDriver driver;

	public static void main(String[] args) {
		killProcessor("node.exe");
		killProcessor("adb.exe");
		startAppuim();
		launchApp();
		clickTest();
	}

	private static void clickTest() {
		try {
			driver.findElement(By.name("Storage")).click();
			Thread.sleep(1000);
			driver.findElement(By.name("Backup")).click();
			Thread.sleep(1000);
			driver.findElement(By.name("Locate")).click();
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private static void launchApp() {
		File classPath = new File(System.getProperty("user.dir"));
		File app = new File(classPath, "spark-normal-36.98.apk");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability("device", "Android");
		capabilities.setCapability(CapabilityType.VERSION, "4.4.2");
		capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
		capabilities.setCapability(CapabilityType.PLATFORM, "Windows");
		capabilities.setCapability("app", app.getAbsolutePath());
		capabilities.setCapability("app-package", "com.asurion.android.spark");
		capabilities.setCapability("app-activity", "com.asurion.android.setup.activity.ZeroActivity");
		capabilities.setCapability("app-wait-activity", "com.asurion.android.common.ui.actionbar.MainActionBarActivity");
		capabilities.setCapability("newCommandTimeout", 1200);
		try {
			driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		System.out.println("launching new activity");
	}

	private static void startAppuim() {
		List<String> cmdLine = new ArrayList<String>(Arrays.asList(new String[] { "cmd.exe", "/C", "start", "node", "D:/java/eclipse-automation/Appium/node_modules/appium", "--no-reset" }));
		ProcessBuilder pb = new ProcessBuilder(cmdLine);
		try {
			pb.start();
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("node start");
	}

	private static void killProcessor(String processName) {
		try {
			Process p = Runtime.getRuntime().exec(System.getenv("windir") + "\\system32\\tasklist.exe");
			BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
			String line = null;
			while ((line = br.readLine()) != null) {
				if (line.indexOf(processName) != -1) {
					String cmd = "taskkill /F /IM " + processName;
					Runtime.getRuntime().exec(cmd);
					System.out.println("killing processor:" + processName);
				}
			}
			br.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

注意:

1、Android客户端放在项目路径下:

D:\java\workspaces\myworkspaces\seleniumTest-0.0.1-SNAPSHOT\spark-normal-36.98.apk

 

2、Android手机需要设置屏幕始终是亮的状态。

分享到:
评论
1 楼 zxjlwt 2016-04-03  
学习了
http://surenpi.com

相关推荐

    Java:Selenium2+Java自动化测试实战.docx

    Java:Selenium2+Java自动化测试实战Java:Selenium2+Java自动化测试实战Java:Selenium2+Java自动化测试实战Java:Selenium2+Java自动化测试实战Java:Selenium2+Java自动化测试实战Java:Selenium2+Java自动化测试...

    Selenium2自动化测试实战 基于Python语言

    《Selenium2自动化测试实战——基于Python语言》是一本针对软件测试工程师,尤其是对Web应用程序自动化测试感兴趣的读者的专业书籍。作者虫师在2016年10月编写了这本书,尽管时间已过去数年,但Selenium作为自动化...

    Selenium自动化测试:基于Python语言.azw3

    本书介绍了如何用Python语言调用Selenium WebDriver接口进行自动化测试。主要内容为:基于Python 的 Selenium WebDriver 入门知识、Selenium Python脚本、使用unittest 编写单元测试、生成HTML格式的测试报告、元素...

    基于Selenium 2的自动化测试 从入门到精通

    基于Selenium 2的自动化测试 从入门到精通PDF电子书下载 带书

    SELENIUM 2 自动化测试实战 基于PYTHON语言

    【Selenium 2 自动化测试实战 基于PYTHON语言】 Selenium 是一款强大的Web自动化测试工具,尤其适用于浏览器自动化。Selenium 2(也称为Selenium WebDriver)是其发展的一个重要阶段,它提供了对多种浏览器的支持,...

    [零成本实现Web自动化测试-基于Selenium和Bromine].温素剑.扫描版

    《零成本实现Web自动化测试-基于Selenium和Bromine》是温素剑撰写的一本技术书籍,专注于介绍如何在不产生额外费用的情况下,利用开源工具进行高效的Web自动化测试。书中的内容涵盖了一系列与Web自动化测试相关的...

    Selenium 2自动化测试实战 基于Python语言

    Selenium 2自动化测试实战 基于Python语言 企业批量购书 分享 关注商品举报 Selenium 2自动化测试实战 基于Python语言 这不仅是一本Selenium2自动化测试书,同时还是一本实用的Python基础编程书

    selenium2 python自动化测试 PDF学习

    首先,了解Selenium是进行Web自动化测试的基础。Selenium提供了Selenium IDE,这是一个基于浏览器的记录和回放工具,它允许测试人员录制用户的操作并转换成测试脚本。通过Selenium IDE,可以很快地创建测试用例,并...

    Selenium-3.12-自动化测试例子

    在IT行业中,自动化测试是提升效率、确保产品质量的重要手段,而Selenium则是一款广泛应用于Web应用测试的自动化框架。本文将深入探讨Selenium 3.12版本在自动化测试中的应用,以及如何利用它来测试网页系统。 ...

    基于Selenium的Web软件自动化测试.pdf

    在进行基于Selenium的自动化测试时,可能还需要集成其他工具或框架,比如用于版本控制的Git,用于持续集成的Jenkins,用于测试管理的TestNG或JUnit等。 综上所述,Selenium在Web软件自动化测试中有着广泛的应用,它...

    selenium自动化测试实践——基于python语言

    本文介绍的是一本关于Selenium自动化测试的实践指南,它以Python语言为编程基础,提供了一系列自动化测试的实践技巧和实例。以下知识点将详细介绍书中所涉及的关键内容。 首先,了解Selenium。Selenium是一个用于...

    Selenium自动化测试:基于Python语言.rar

    本资源包“Selenium自动化测试:基于Python语言.rar”显然是一个专注于介绍如何使用Python进行Selenium测试的教程资料。 在Python中,Selenium主要通过`selenium`模块提供,它提供了WebDriver接口,可以与各种...

    基于Python的Selenium自动化测试在毕业设计中的应用.pdf

    本文主要探讨了基于Python语言和Selenium自动化测试工具在毕业设计中的应用,并分析了引入自动化测试的意义以及如何搭建自动化测试环境。 一、自动化测试的概念与重要性 自动化测试是通过预先编写的测试脚本,利用...

    自动化测试工具Selenium书籍(9本)目录知识点(思维导图加图).rar

    自动化测试工具Selenium书籍(9本)目录知识点(思维导图加图).rar 根据如下9本Selenium书籍收集整理: 2013年《Selenium自动化测试指南》 ...2020年《全栈软件测试自动化 Selenium和Appium (Python版)》

    SELENIUM2自动化测试实战基于PYTHON语言

    资源名称:SELENIUM 2 自动化测试实战 基于PYTHON语言内容简介:《Selenium 2自动化测试实战——基于Python语言》共分 14 章。第 1 章是自动化测试相关基础知识的介绍;第 2 章到第 10 章是《Selenium 2自动化测试...

    Selenium自动化测试:基于Python语言

    资源包括Selenium自动化测试:基于Python语言的文档以及每章节的代码

    selenium2 python自动化测试.pdf

    《Selenium2 Python自动化测试实战》是一本面向初级和中级测试工程师的指南,旨在教授如何使用Python和Selenium WebDriver进行Web自动化测试。这本书由一位热衷于技术实践和分享的作者编写,通过大量实例展示了如何...

    基于Selenium的WebUI自动化测试框架(Java+Maven+Selenium+TestNG+Jedis+Jenkins)

    使用Java+Maven+Selenium+TestNG+Jedis+Jenkins搭建的WebUI自动化测试框架,资源的大体介绍如下链接http://note.youdao.com/noteshare?id=dc564343fd126f497074f6d7560c9f5e&sub=387EB3B1BAC945CEA71A5BDBC6484473

Global site tag (gtag.js) - Google Analytics