Appium简单测试用例
工程目录如下:

封装初始化androiddriver 方法
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
public class DeviceSession {
static
{
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
static DesiredCapabilities capabilities=null;
public static DesiredCapabilities getDesiredCapabilities()
{
//因为所有在java.io中的类都是将相对路径名解释为起始于用户的当前工作目录,
// 所以可以通过调用System.getProperty("user.dir") 来获得
File classpathRoot = new File(System.getProperty("user.dir"));//默认文件位置
File appDir = new File(classpathRoot, "apk");
File apk = new File(appDir, "android-debug.apk");
if(capabilities==null)
{
capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "UGUWUGTWYP49KVNJ");
capabilities.setCapability("platformVersion", "4.2");
capabilities.setCapability("app", apk.getAbsolutePath());//"E:\\apk\\android-debug.apk"(绝对路径,存放在电脑的某个位置)
capabilities.setCapability("appPackage", "com.eshare.Purse");
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("appActivity", ".MainActivity");
}
return capabilities;
}
}
测试用例如下:
import com.eshare.qa.common.*;
import com.eshare.qa.wireless.DeviceSession;
import io.appium.java_client.android.AndroidDriver;
import org.json.JSONObject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.testng.asserts.Assertion;
import java.net.URL; public class TestPurse {
public AndroidDriver<WebElement> driver=null;
Assertion assertion;
@BeforeClass
public void setUp() throws Exception{
assertion = new Assertion();
DesiredCapabilities capabilities = DeviceSession.getDesiredCapabilities();
try {
driver = new AndroidDriver<WebElement>(
new URL(Configuration.Url), capabilities);
} catch (Exception ex) {
System.out.println(ex.toString());
}
//System.out.println("new!");
try {
Thread.sleep(15 * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} @Test
public void test() throws Exception{
boolean ret = ViewUtils.waitForWebViewInit(driver,"WEBVIEW_com.eshare.Purse");
assertion.assertTrue(ret);
driver.context("WEBVIEW");
String loginButtonXpath = "//*[text()='手机登入']";
boolean isExsit = isElementExist(loginButtonXpath);
if(isExsit){
login();
afterLogin();
}else{
afterLogin();
}
}
@AfterClass
public void teardown(){
driver.quit();
}
Appium简单测试用例的更多相关文章
- 测试工具之Jmeter(创建一个简单测试用例)
前面介绍了如何使用badboy录制jmeter脚本,以及如何导入脚本并进行测试 这里介绍下手动创建测试用例,主要步骤如下: 1.创建线程组 第一次打开Jmeter只有一个测试计划,右键“测试计划”选择 ...
- android-sdk-window的环境搭建以及appium简单录制脚本的使用
大家好,今天给大家带来的是appium的环境搭建以及简单的录制脚本,自学的过程中入了不少坑,下面给大家开始分享! 使用Appium录制脚本必备三大金刚:Appium-desktop(至于为什么用这个, ...
- appium简单使用
App 测试通常会用到的工具 adb :Android 的控制工具,用于获取Android的各种数据和控制 Appium Desktop:内嵌了Appium Server和Inspector的综合工具 ...
- redis简单测试用例(内存不足,可以使用redis)
Redis本质上是一个Key-Value类型的内存数据库,很像memcached,听说他的性能远高于memcached,所以想自己搞个玩下.看到底有什么好处. 在windows下使用redis首先要 ...
- appium+python+eclipse简单编写小示例!
Appium简单介绍! 一.appium分成3个部分来看,分别为:appium服务端.appium客户端.设备端 1.设备端 WebDriverAgentRunner 的应用,以后简称 WDA,这个应 ...
- appium简明教程
appium简明教程 什么是appium? 下面这段介绍来自于appium的官网. Appium is an open-source tool you can use to automate mobi ...
- Appium 测试微信小程序 Webview
通过微信打开debugx5.qq.com,或者直接扫下面二维码 勾选[打开TBS内核Inspector调试功能] Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展示设备号则为连 ...
- 使用 Appium 测试微信小程序 Webview
打开调试功能 通过微信打开debugx5.qq.com,或者直接扫下面二维码 勾选[打开TBS内核Inspector调试功能] Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展 ...
- appium简明教程(11)——使用resource id定位(仅支持安卓4.3以上系统)
上一节乙醇带大家了解了appium的定位策略.实际上appium的控件定位方式是完全遵守webdriver的mobile扩展协议的. 这一节将分享一下如何使用resource id来定位android ...
随机推荐
- 【转】将grub2安装到u盘的方法
将grub2安装到u盘的方法 时间:2015-03-21来源:linux网站 作者:linux人 grub2在各大linux发行版中广泛采用,它非常强大,基本上大多数操作系统都是通过它引导起来的,它的 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 设计模式02迭代器(java)
先贴代码,有空来写内容. 1.定义集合 import java.util.List; import java.util.ArrayList; //coollection是我自己定义的一个集合,因为要写 ...
- Linux应用程序基础
文件位置: 系统命令:/bin和sbin目录,或shell内部指令: 应用程序:/usr/bin和/usr/sbin目录. /usr/bin:普通执行程序文件: ...
- 改变你代码习惯的ES6
最近读阮一峰老师的ES6标准入门,让我感觉到了ES6的强大之处,读书之余整理了一些笔记,因为边读边记录的,所以可能会比较杂乱. ECMAScript和Javascript的关系 1996年11月,Ja ...
- iOS之数字的格式化
//通过NSNumberFormatter,同样可以设置NSNumber输出的格式.例如如下代码: NSNumberFormatter *formatter = [[NSNumberFormatter ...
- xcode8 storyboard 控件显示错位
升级xcode8 后选择device 为6s 出现上面的情况,控件显示异常.使用Update Frame 显示正常.不能选择Update Constraints 如果误选 commend + Z ...
- ListView之点击展开菜单
一.概述 ListView点击item显示菜单是要实现这样的效果: 需要实现的逻辑如下: 1)点击一个普通item,展开当前菜单,同时关闭其他菜单 2)点击一个已展开的菜单,隐藏当前菜单 3)将展开菜 ...
- easyui表格的增删改查
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Python测试函数的方法之一
Python测试函数的方法之一 首先介绍简单的try......except尝试运行的放例如下面的图和代码来简单介绍下: 注释:提醒以下代码环境为2.7.x 请3.x以上的同学们老规矩print(把打 ...