Uiautomator--断言的使用
方法 | 说明 |
assertEquals(boolean,boolean) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,boolean,boolean) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(byte,byte) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,byte,byte) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(char,char) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,char,char) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(int,int) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,int,int) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(long,long) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,long,long) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(Object,Object) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,Object,Object) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(short,short) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,short,short) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,String) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,String,String) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
//断言两个对象是否相等
static public void
asserEquals(String message,Object expected,Object actual){
//判断两个都为空,则相等
if (expected==null && actual==null){
return ;
}
//判断两个相等
if (expected!=null && expected.equals(actual)){
return
}
//如果以上都不符合,直接抛出异常
failNotEquals(message,expected,actual);
}
public void testDemo1() throws UiObjectNotFoundException{
//断言相等的例子
assertEquals(5, add(2,3));
//断言不相等的例子
assertEquals(6, add(2,3));
}
//新建一个加法方便使用断言函数
public int add(int a,int b){
return a+b;
}
方法 | 说明 |
assertEquals(double,double,double) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
assertEquals(String,double,double,double) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
assertEquals(float,float,float) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
assertEquals(String,float,float,float) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
public void testDemo1() throws UiObjectNotFoundException{
//断言不相等的例子
assertEquals(0.3333, Double.valueOf(1)/3,0);
//断言相等的例子
assertEquals(0.3333, Double.valueOf(1)/3,4);
//断言相等的例子
assertEquals(0.3333, Double.valueOf(1)/3,0.0001);
}
//新建一个加法方便使用断言函数
public int add(int a,int b){
return a+b;
}
3、相关API--same
方法 | 说明 |
assertFalse(boolean) | 如果条件(condition)为False则通过,否则失败 |
assertFalse(String,boolean) | 如果条件(condition)为False则通过,否则失败 |
assertTrue(boolran) | 如果条件(condition)为True则通过,否则失败 |
assertTrue(String,boolran) | 如果条件(condition)为True则通过,否则失败 |
assertNotNull(Object) | 如果条件(condition)为非空则通过,否则失败 |
assertNotNull(String,Object) | 如果条件(condition)为非空则通过,否则失败 |
assertNull(Object) | 如果条件(condition)为空则通过,否则失败 |
assertNull(String,Object) | 如果条件(condition)为空则通过,否则失败 |
assertNotSame(Object,object) | 如果期望(expected)和实际(actual)引用不同的内存对象对象则通过,否则失败 |
assertNoteSame(String,Object,Object) | 如果期望(expected)和实际(actual)引用不同的内存对象对象则通过,否则失败 |
assertSame(Object,Object) | 如果期望(expected)和实际(actual)引用相同的内存对象对象则通过,否则失败 |
assertSame(String,Object,Object) | 如果期望(expected)和实际(actual)引用相同的内存对象对象则通过,否则失败 |
/示例一:
public void testDemo1() throws UiObjectNotFoundException{
//自己声明一个布尔值为了测试断言函数的使用
boolean is=true;
//断言成功的例子
assertTrue(is);
//断言失败的例子
assertFalse(is);
}
//示例二:
public void testDemo1() throws UiObjectNotFoundException{
int a = 100;
int b = 100;
Integer c=new Integer(100);
//断言成功的例子,值的比较
assertSame(a, b);//a和b的值相等,内存指向也相等
//断言失败的例子
assertNotSame(a, b);
//断言失败的例子,内存地址比较
assertSame(a, c);//a和c的值相等,内存指向不相等
//断言成功的例子
assertSame((Object)a, c);//a和c的类型不一样,所以要把a强制转换成对象,才可以比较
}
4、相关API--fali
方法 | 说明 |
fail() | 用例立即失败 |
fail(String) | 用例立即失败,且抛出指定消息 |
failNotEquals(String,Object,Object) | 用例立即失败,且抛出指定消息与期望、实际值不相等的消息 |
failNotSame(String,String,String) | 用例立即失败,且抛出指定消息与期望、实际值不相等的消息 |
failSame(String) | 用例立即失败,且抛出指定消息 |
public void testDemo1() throws UiObjectNotFoundException{
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressMenu();
UiDevice.getInstance().pressHome();
//用例失败,且抛出异常
fail("Failed");
}
三、结合实例
//开始
protected void setUp() throws Exception{
super.setUp();
}
public void testDemo1() throws UiObjectNotFoundException{ //初始化场景
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressHome();
//打开文件管理
UiObject app=new UiObject(new UiSelector().description("应用"));
UiObject file=new UiObject(new UiSelector().text("文件管理器"));
app.clickAndWaitForNewWindow();
file.clickAndWaitForNewWindow();
//验证开启成功
String packageName=UiDevice.getInstance().getCurrentPackageName();
assertEquals("File open succes!","com.cyanogenmod.filemanager", packageName);
//检查目录名为test的目录
UiObject test=new UiObject(new UiSelector().text("test"));
UiScrollable listView=new UiScrollable(new UiSelector().className("android.widget.ListView"));
boolean FindResult=listView.scrollIntoView(test);
//如果有该目录则停止执行用例
if (FindResult==true){
fail("test目录已经存在");
}
//如果没有该目录则新建test目录
UiObject dos=new UiObject(new UiSelector().description("操作"));
dos.clickAndWaitForNewWindow();
UiObject newFile=new UiObject(new UiSelector().text("新建文件夹"));
newFile.clickAndWaitForNewWindow();
UiObject input=new UiObject(new UiSelector().className("android.widget.EditText"));
input.setText("test");
UiObject ok=new UiObject(new UiSelector().text("确定"));
ok.click();
//验证新建成功
boolean FindResult2=listView.scrollIntoView(test);
assertTrue("test目录创建成功",FindResult2);
}
//完成
protected void tearDown() throws Exception{
super.tearDown();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressHome();
}
Uiautomator--断言的使用的更多相关文章
- 10.Android UiAutomator Junit 断言函数的使用
一.断言函数介绍 1.断言函数: 确定被测试的方法是否按照预期的效果正常工作 比如说: if (假设成立){ 通过测试 }else{ 报错并终止当前用例测试 } 2.断言函数用例结构: 一个完整的测试 ...
- 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...
- uiautomator做自动化的过程
UIautiomator官网地址:http://android.toolib.net/sdk/index.html 1.环境搭建 使用uiautomator需要导入jar包,uiautomator.j ...
- Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...
- 两分钟搞懂UiAutomator、UiAutomator2、Bootstrap的关系
很多同学经过一段时间的学习之后都明白了Appium的基本原理,但是越学习到后面发现出现的很多陌生名词无法弄清楚其具体作用,今天这篇文章的目的就是为了让大家来弄懂三个高频名词:UiAutomator.U ...
- 11.UiAutomator 相关JAVA知识
一.封装方法与模块化用例 1.方法: 在JAVA中,方法就好比日常生活中的一个动作,由动作组合成一系列完整的操作. 方法结构: 方法修饰符 方法返回值类型 方法名 { 方法体 } 比如: public ...
- uiautomator +python 安卓UI自动化尝试
使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...
- Android自动化测试框架UIAutomator原理浅析
UIAutomator是一个Android自动化测试框架,是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,它只能用于UI即黑盒方面的测试.所以UIAutomator只能运 ...
- UiAutomator、UiAutomator2、Bootstrap的关系
很多同学经过一段时间的学习之后都明白了Appium的基本原理,但是越学习到后面发现出现的很多陌生名词无法弄清楚其具体作用,今天这篇文章的目的就是为了让大家来弄懂三个高频名词:UiAutomator.U ...
- Android UIAutomator自动化测试
描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码 ...
随机推荐
- MS SQL SERVER导出表结构到Excel
通过sql语句导出表结构 SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.co ...
- 在linux上如何通过composer安装yii
Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库. b) 其中一些库依赖于其他库. c) 你声明你所依赖的东西. d) Composer 会找出哪个版 ...
- IIS配置MP3/MP4/OGG/flv等资源文件访问
配置过程参考:http://www.cnblogs.com/EasonJim/p/4752399.html 以下包含了mp4的mime类型: 323 text/h323 acx application ...
- Javascript数组操作(转)
1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...
- javascript 基础
javascript概述: javascript历史: * 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEas ...
- Linux 基础
命令说明 $ type cmd # 获取命令类型 $ which cmd # 命令的位置 $ help cmd / cmd --help / man cmd # 获取命令帮助 $ whatis cmd ...
- PHP编码规范PSR-1
.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...
- Day5-python基础之函数(二)
生成器 迭代器 装饰器 模块 来个需求,一个列表中所有元素都+1 1.最容易想到的方法 for循环,找列表索引,对应每个值+1 list_old = [1,2,3,4,5,6,7,8,9] for ...
- SQLite
什么是SQLite SQLite是一款轻型的嵌入式数据库 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 它的处理速度比Mysql.PostgreSQL这两款著名的数据库都还快 ...
- mysql 关系表 分组读取的方法
关系表 是一个一对多的表 我们用的时候往往希望得到 array( a=>array(1,2,3,4....), b=>array(3,4,5,6,7...) ) 这样的数组 所以我们可以使 ...