美文网首页
学习笔记-断言

学习笔记-断言

作者: sofiiii | 来源:发表于2019-12-10 16:08 被阅读0次

1. 元素是否存在

find_elements

2. 元素属性是否正确

get_attribute
assert 'xxxx' in element.get_attribute('resource-id')

3. 查找元素文本

assert float(find_element_by_id('xxxx).text)>20

4. hamcrest断言

  • Hamcrest是用于Java的单元测试的框架,它使用matcher匹配器来进行断言。在Spring-boot-starter中集成了Hamcrest,无需而外引入。
    [https://github.com/hamcrest/PyHamcrest](https://github.com/hamcrest/PyHamcrest)
安装
pip install PyHamcrest
  • IS
String str1 = "text";
String str2 = " text ";
assertThat(str1, is(equalToIgnoringWhiteSpace(str2)));
String str1 = "text";
String str2 = "text";
assertThat(str1, is(str2));
  • NOT
String str1 = "text";
String str2 = " text ";
assertThat(str1, not(equalToIgnoringWhiteSpace(str2)));

String str1 = "text";
String str2 = "text";
assertThat(str1, not(str2));
  • containsString
String str1 = "text123";
String str2 = "text";
assertThat(str1, containsString(str2));
  • 以为某个字段开头/结尾
String str1 = "text123";
assertThat(str1, startsWith("text"));// 以某个字符开头
assertThat(str1, endsWith("text"));// 以某个字符开头
  • 判断两个对象是否为同一个实体
Cat cat=new Cat();
assertThat(cat, sameInstance(cat));
  • 类似OR的效果
String str = "calligraphy";
String start = "call";
String end = "foo";
assertThat(str, anyOf(startsWith(start), containsString(end)));
  • 类似AND的效果
String str = "calligraphy";
String start = "call";
String end = "phy";
assertThat(str, allOf(startsWith(start), endsWith(end)));
  • Number 匹配器
assertThat(1, greaterThan(0)); // 大于
assertThat(5, greaterThanOrEqualTo(5)); //大于等于
assertThat(-1, lessThan(0)); // 小于
assertThat(-1, lessThanOrEqualTo(5)); // 小于等于
  • Text 匹配器
String str = "";
assertThat(str, isEmptyString()); // 空字符串
assertThat(str, isEmptyOrNullString()); // 空字符串或者null
  • 匹配字符串相等
String str1 = "text";
String str2 = " text ";
assertThat(str1, equalToIgnoringWhiteSpace(str2)); // 忽略左右空白
assertThat(a, equalToIgnoringCase(b)); //忽略大小写
  • Collections 匹配器

  • 检查某个元素是否在集合中

List<String> collection = Lists.newArrayList("ab","cd","ef");
assertThat(collection, hasItem("cd"));
assertThat(collection, not(hasItem("zz")));
assertThat(collection, hasItems("cd", "ab")); // 检查多个元素是否在集合中
  • 检查所有元素
List<String> collection = Lists.newArrayList("ab","cd","ef");
assertThat(collection, hasItems("ab","cd","ef"));
assertThat(collection, hasItems("cd", "ab","ef")); // 错误
assertThat(collection, hasItems("ab","cd")); // 错误
assertThat(collection, containsInAnyOrder("cd", "ab","ef")); //正确,不区分顺序
  • 集合为空检查
List<String> collection = Lists.newArrayList("ab","cd","ef");
assertThat(collection, empty()); // false, 用于检查集合类型
  • 数组为空检查
String[] array = new String[] { "ab" };
assertThat(array, emptyArray()); // false

5. 总结

核心:
    anything - 总是匹配,如果你不关心测试下的对象是什么是有用的
    describedAs - 添加一个定制的失败表述装饰器
    is - 改进可读性装饰器 - 见下 “Sugar”
逻辑:
    allOf - 如果所有匹配器都匹配才匹配,像Java里的&&
    anyOf - 如果任何匹配器匹配就匹配,像Java里的||
    not - 如果包装的匹配器不匹配器时匹配,反之亦然
对象:
    equalTo - 测试对象相等使用Object.equals方法
    hasToString - 测试Object.toString方法
    instanceOf, isCompatibleType - 测试类型
    notNullValue, nullValue - 测试null
    sameInstance - 测试对象实例
Beans:
    hasProperty - 测试JavaBeans属性
集合:
    array - 测试一个数组元素test an array’s elements against an array of matchers
    hasEntry, hasKey, hasValue - 测试一个Map包含一个实体,键或者值
    hasItem, hasItems - 测试一个集合包含一个元素
    hasItemInArray - 测试一个数组包含一个元素
数字:
    closeTo - 测试浮点值接近给定的值
    greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo - 测试次序
文本:
    equalToIgnoringCase - 测试字符串相等忽略大小写
    equalToIgnoringWhiteSpace - 测试字符串忽略空白
    containsString, endsWith, startsWith - 测试字符串匹配

相关文章

  • 学习笔记-断言

    1. 元素是否存在 2. 元素属性是否正确 3. 查找元素文本 4. hamcrest断言 Hamcrest是用于...

  • 学习笔记-参数化、断言

    1.添加配置元件(CSV Data Set Config) 选中线程组,点击右键,添加-配置元件-CSV Data...

  • Python ☞ day 5

    Python学习笔记之 装饰器& 偏函数 & 异常处理 & 断言 & 文件读写 &编码与解码 装饰器 概念:是一个...

  • 断言学习

    前言 最近看项目代码,发现里面有大量的断言。已经看不懂了,偷偷百度学习一下。 百度搜索 断言:断言表示为一些...

  • Pytest学习笔记2-断言

    1. 断言 断言语句是什么?断言语句是将调试断言插入程序的便捷方式: 简单的形式, 相当于assert expre...

  • Java学习笔记之断言(Assertion)

    (最近刚来到简书平台,以前在CSDN上写的一些东西,也在逐渐的移到这儿来,有些篇幅是很早的时候写下的,因此可能会看...

  • 学习笔记-Pytest(八)assert断言

    1. 前言 断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来...

  • AssertJ 断言框架笔记

    AssertJ 断言框架笔记 [TOC] https://github.com/joel-costigliola/...

  • 2017.12.01学习总结

    今天学习了断言,断言是编程术语,表示为一些布尔表达式,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言...

  • soapUI 学习笔记---断言的小使用

    以下示例在 soapUI 4.5 中进行。 刚开始学 soapUI 的使用, 记录下以免忘记 1.创建 proje...

网友评论

      本文标题:学习笔记-断言

      本文链接:https://www.haomeiwen.com/subject/zjtlgctx.html