测试中断言的重要性

一、断言的作用:
1.断言也就是检查点,重在判断我们通过页面得出来的值与期望值是否相等,如果相等,则代表断言成功,程序会继续往下执行,如果不相等,则代表断言失败,程序就会在断言失败处中止。

示例:

二、断言的API:
1.Assert.assertEquals
2.Assert.assertFalse(condition)
3.Assert.assertNotEquals(actual1, actual2)
4.Assert.assertNotNull(object)
5.Assert.assertNotSame(actual, expected, message)
6.Assert.assertNull(object, message)
7.Assert.assertSame(actual, expected)
8.Assert.assertTrue(condition)

三、封装断言类
断言结果对程序的影响
1.场景:假如对一个表格里的数据做一个循环比较,如果一断言失败就退出,那我们就无法一下子找出全部不符合要求的数据了,那么我们可不可以在断言时,如果断言失败则不退出,等到把整个循环做完后,再整体判断是否有断言失败的地方?

示例:

脚本格式

具体代码

Assertion.java代码:

package com.selenium.utils;

import org.testng.Assert;

public class Assertion {
public static boolean flag = true; public static void verifyEquals(Object actual, Object expected) {
try {
Assert.assertEquals(expected, actual);
} catch (Error e) {
flag = false;
Log.logError("数据对比错误-> 期望值为:" + expected + "实际值为:" + actual);
}
} public static void verifyEquals(Object actual, Object expected,
String message) {
try {
Assert.assertEquals(expected, actual, message);
} catch (Error e) {
flag = false;
Log.logError("数据对比错误-> 期望值为:" + expected + "实际值为:" + actual);
}
}
}

在代码中使用如下:

package com.selenium.test;

import org.junit.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.selenium.utils.Assertion; public class testAssertion { // @Test(dataProvider = "number")
public void testAssertAndLog4j(String text) {
String expected = "b";
String actual = text;
Assertion.flag = true;
for (int i = 0; i < 3; i++) {
System.out.println("断言开始:" + i);
Assertion.verifyEquals(actual, expected, "---测试两个字符串是否相同");
System.out.println("断言结束:" + i);
}
Assert.assertTrue(Assertion.flag);
} @DataProvider
public Object[][] number() {
return new Object[][] { { "a" }, { "b" }, { "c" } };
}
}

最后打个广告,不要介意哦~

最近我在Dataguru学了《软件自动化测试Selenium2》网络课程,挺不错的,你可以来看看!要是想报名,可以用我的优惠码 G863,立减你50%的固定学费!

链接:http://www.dataguru.cn/invite.php?invitecode=G863

selenium2断言类Assert的使用的更多相关文章

  1. Selenium2+python自动化56-unittest之断言(assert)

    前言 在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert). 用unittest组件测试用例的时候,断言 ...

  2. Selenium2+python自动化56-unittest之断言(assert)【转载】

    前言 在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert). 用unittest组件测试用例的时候,断言 ...

  3. selenium自动化-java-封断言类2

    封装断言类 package streamax.com; import java.util.ArrayList; import java.util.List; import org.testng.Ass ...

  4. 断言(Assert)与异常(Exception)

    ## 断言和异常 断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置. 异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性. ## 断言的使用 在防御式编程中经常会用断 ...

  5. PHP断言(ASSERT)的用法

    简述 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式.程序员断言在程序中的某个特定点该的表达式值为真.如果该表达式为假,就中断操作. 可以 ...

  6. Robotium_断言方法assert、is、search

    下面的这些方法都主要用来判断测试结果是否与预期结果相符,一般把is和search方法放在assert里面判断.assert最常用的还是assertThat方法,是Junit的判断,这里就不多说了.断言 ...

  7. 【MFC】断言(ASSERT)的用法

    摘自:Moondark  http://www.cnblogs.com/moondark/archive/2012/03/12/2392315.html 断言(ASSERT)的用法   我一直以为as ...

  8. Swift入门(四)——可选类型(Optionals)与断言(Assert)

    可选类型是什么? 首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,能够把String类型变量转换为Int类型变量. var stringValue = "5&q ...

  9. python断言语句assert

    断言语句的格式 assert test, [msg] test是一个表达式,表达式求值为Fals时引发AssertionError异常,msg是可选的异常消息. def test_assert(a): ...

随机推荐

  1. .net的基础知识点

    在这个It市场都是风云变化的,都是又市场供需来定的,当年iOS火的一塌糊涂的,现在也出现找不到工作的,满地的出入门者,我就属于其中一个,在一个逼不得已的情况下,开始转行做.net ,我相信当年的很多. ...

  2. 客户端rsyslog配置文件详解

    客户端rsyslog配置文件详解 最近再开发一个rsyslog的接收服务端,支持udp,tcp和tls三种协议.所以去仔细研究了一下rsyslog.conf的配置文件,下面来详细说一下. 因为我这儿重 ...

  3. Hibernate 事物隔离级别

      Hibernate事务和并发控制                                            ++YONG原创,转载请注明 1.    事务介绍: 1.1.        ...

  4. H5的storage(sessionstorage&localStorage)简单存储删除

    众所周知,H5的storage有sessionstorage&localStorage,其中他们的共同特点是API相同 下面直接上代码,storage中的存储与删除: <!DOCTYPE ...

  5. PHP实现正态分布的累积概率函数

    在实际项目中,遇到需要正态分布算法去计算一个数值在整体的分布区间,例如:  100,90,80,70,60,50,40,30,20,10共10个数,按从高到低的顺序排序,总数的10%分布区域为极高频, ...

  6. SQL Server数据库log shipping 灾备(Part2 )

    3.配置步骤: 主服务器(A机)设置 (1) 启用Log Shipping Configuration 右键单击需要配置日志传输的数据库->Tasks-> Ship Transaction ...

  7. Windows基础环境_安装配置教程(Windows7 64、JDK1.8、Android SDK23.0、TortoiseSVN 1.9.5)

    Windows基础环境_安装配置教程(Windows7 64.JDK1.8.Android SDK23.0.TortoiseSVN 1.9.5) 安装包版本 1)     JDK版本包 地址: htt ...

  8. Vue.js-this详解

    this this 指向并不是在函数定义的时候确定的,而是在调用的时候确定的.换句话说,函数的调用方式(直接调用.方法调用.new调用.bind.call.apply.箭头函数)决定了 this 指向 ...

  9. Spoj REPEATS 后缀自动机+set

    REPEATS - Repeats 链接:http://www.spoj.com/problems/REPEATS 题意:求S串中某个子串连续循环次数最多的次数. 想法: 从暴力开始,枚举所有串,求出 ...

  10. 协议学习之 vamei博客系列 总结

    1. 分层: 物理层(physical layer) 所谓的物理层,是指光纤.电缆或者电磁波等真实存在的物理媒介.这些媒介可以传送物理信号,比如亮度.电压或者振幅.对于数字应用来说,我们只需要两种物理 ...