断言函数-RF
测试用例的目的是要验证一些操作否符合我们的预期结果,所以在测试用例中,断言函数是必不可少的一项。我们做的每一步操作都会有预期的结果,为了保证操作得到的结果符合预期,我们需要在测试用例中添加断言,来保证实际结果和预期结果一致。那么先让我们来认识一些常用的断言函数:
1、should be equal 与should not be equal
![](https://upload-images.jianshu.io/upload_images/23053034-9271a84604989e78.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我们在第一行设置一个变量,并赋值1,第二行,意思是${var}应该等于1
运行:
![](https://upload-images.jianshu.io/upload_images/23053034-d3735c7c1971b53d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
会发现只是打印出了变量的值,一般来说,断言函数只起断言作用,符合断言没有任何操作,不符合则报错:
现在我们把${var}值改为2,断言不变,再运行:
![](https://upload-images.jianshu.io/upload_images/23053034-9fd5b00346ab47b4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/23053034-d9eaaca8dd114dd3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我们发现用例报红,并且在这里给出了断言出错。
should not be equal恰好相反,用来断言不相等。
2、should be empty与should not be empty
断言为空或不为空。
![](https://upload-images.jianshu.io/upload_images/23053034-89a168a4c8866a41.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如上图,create list是一个创建列表的函数,我们没有为列表赋值,则${var}是一个空列表,运行:
![](https://upload-images.jianshu.io/upload_images/23053034-09c1ab9d0ec50d95.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以看到打印出了预期的空列表,并且用例成功运行。
3、should contain、should not contain与should contain x times
![](https://upload-images.jianshu.io/upload_images/23053034-7fc38d3d881d6b56.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这里先说明一下,列表变量也可以用@{var}表示,但${var}既可以表示单个变量,也可以表示列表、字典,用起来比较方便~~~ 我们创建了一个列表,内涵1、2、3值,断言列表中含有1:
![](https://upload-images.jianshu.io/upload_images/23053034-3c1352777e0aeaa5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
运行通过,打印出了变量值,可以看到正如我们预期,${var}是一个列表,这里发现列表里每一个值前面都有一个u,这是因为RF默认是Unicode编码,这里的u对你的用例或断言都没有影响的。
should not contain不必解释。我们来说一下should contain x times,根据英文翻译即可,就是应该含有某值x次:
![](https://upload-images.jianshu.io/upload_images/23053034-25069c83c80aea82.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这里的断言意思是变量${var}中应该包含2个1,运行:
![](https://upload-images.jianshu.io/upload_images/23053034-bcd03043100244d2.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
正如我们预期。
以上列出的是我在工作中最长用的断言,除此之外还有很多,他们的意思其实可以根据英文翻译即可,毕竟老外也是按着他们的目的写出来的:
如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。
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自己写脚本,实现相应的逻辑,然后导入系统关键字即可。
以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。