RF-断言函数

测试用例的目的是要验证一些操作否符合我们的预期结果,所以在测试用例中,断言函数是必不可少的一项。我们做的每一步操作都会有预期的结果,为了保证操作得到的结果符合预期,我们需要在测试用例中添加断言,来保证实际结果和预期结果一致。那么先让我们来认识一些常用的断言函数:

1、should be equal 与should not be equal

我们在第一行设置一个变量,并赋值1,第二行,意思是${var}应该等于1

运行:

会发现只是打印出了变量的值,一般来说,断言函数只起断言作用,符合断言没有任何操作,不符合则报错:

现在我们把${var}值改为2,断言不变,再运行:

我们发现用例报红,并且在这里给出了断言出错。

should not be equal恰好相反,用来断言不相等。

2、should be empty与should not be empty

断言为空或不为空。

如上图,create list是一个创建列表的函数,我们没有为列表赋值,则${var}是一个空列表,运行:

可以看到打印出了预期的空列表,并且用例成功运行。

3、should contain、should not contain与should contain x times

这里先说明一下,列表变量也可以用@{var}表示,但${var}既可以表示单个变量,也可以表示列表、字典,用起来比较方便~~~ 我们创建了一个列表,内涵1、2、3值,断言列表中含有1:

运行通过,打印出了变量值,可以看到正如我们预期,${var}是一个列表,这里发现列表里每一个值前面都有一个u,这是因为RF默认是Unicode编码,这里的u对你的用例或断言都没有影响的。

should not contain不必解释。我们来说一下should contain x times,根据英文翻译即可,就是应该含有某值x次:

这里的断言意思是变量${var}中应该包含2个1,运行:

正如我们预期。

以上列出的是我在工作中最长用的断言,除此之外还有很多,他们的意思其实可以根据英文翻译即可,毕竟老外也是按着他们的目的写出来的:

Should Be Equal As Numbers与Should not Be Equal As Numbers

Should End With与Should not End With

Should start With与Should not start With

should match与should not match

以上是大家在工作中可能遇到的,如果用得上用法可以F5查询即可。

有时候我们的断言函数不能满足我们的需求,这时就需要我们用Python自己写脚本,实现相应的逻辑,然后导入系统关键字即可。

原文发布于微信公众号 - 自动化测试实战(gh_839e78b6ba28)

原文发表时间:2017-05-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿天地

面试题之死锁解密

在多线程环境中,我们经常会遇到多个线程访问同一个共享资源的情况,这个时候必须考虑如何维护数据一致性,常见的方式是加锁处理。只有拿到锁的线程才可以访问共享资源,通...

1531
来自专栏微信公众号:Java团长

Java虚拟机体系结构

  众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下...

1122
来自专栏

go 语言的序列化与反序列化

与c 语言一样, 在网络编程中, go语言同样需要进行序列化与反序列化 在c语言中, 通常需要一块内存缓冲区用来收 发数据。缓冲区一般定义成char *buff...

3367
来自专栏Java学习网

Java中的内存泄漏学习

Java中的内存泄漏学习   Java语言的一个关键的优势就是它的内存管理机制。你只管创建对象,Java的垃圾回收器帮你分配以及回收内存。然而,实际的情况并没...

2328
来自专栏魂祭心

原 yield用法分析

3617
来自专栏xingoo, 一个梦想做发明家的程序员

数字按照不同格式转换成字符串

  如果自己写函数,不使用itoa怎么判断呢?   我们用通常的办法,对数字进行每位的除商,得到后与字符'0'相加。 flag = 0; ...

20710
来自专栏xcywt

《Linux命令行与shell脚本编程大全》第十七章 创建函数

可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了。 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任...

19010
来自专栏农夫安全

【weakfilescan】敏感文件扫描工具

weakfilescan 基于爬虫,动态收集扫描目标相关信息后进行二次整理形成字典规则,利用动态规则的多线程敏感信息泄露检测工具,支持多种个性化定制选项,包括...

4448
来自专栏JetpropelledSnake

Python面试题之Python反射机制

 我们要导入另外一个模块,可以使用import.现在有这样的需求,我动态输入一个模块名,可以随时访问到导入模块中的方法或者变量,怎么做呢?

2232
来自专栏Jackson0714

【.Net底层剖析】3.用IL来理解属性

3337

扫码关注云+社区

领取腾讯云代金券