python接口自动化(二十三)--unittest断言——上(详解)

简介

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

言方法:assertEqual、assertIn、assertTrue。想了解更多可以点击 传送门看一下最后的小结有大致介绍。

  unittest断言计划是分上、中、下三篇有简单到复杂的给小伙伴们介绍一下,填补一下这部分的空白。

基本断言方法

基本的断言方法提供了测试结果是True还是False。所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。

序号断言方法断言描述

1assertEqual(arg1, arg2, msg=None)验证arg1=arg2,不等则fail

2assertNotEqual(arg1, arg2, msg=None)验证arg1 != arg2, 相等则fail

3assertTrue(expr, msg=None)验证expr是true,如果为false,则fail

4assertFalse(expr,msg=None)验证expr是false,如果为true,则fail

5assertIs(arg1, arg2, msg=None)验证arg1、arg2是同一个对象,不是则fail

6assertIsNot(arg1, arg2, msg=None)验证arg1、arg2不是同一个对象,是则fail

7assertIsNone(expr, msg=None)验证expr是None,不是则fail

8assertIsNotNone(expr, msg=None)验证expr不是None,是则fail

9assertIn(arg1, arg2, msg=None)验证arg1是arg2的子串,不是则fail

10assertNotIn(arg1, arg2, msg=None)验证arg1不是arg2的子串,是则fail

11assertIsInstance(obj, cls, msg=None)验证obj是cls的实例,不是则fail

12assertNotIsInstance(obj, cls, msg=None)验证obj不是cls的实例,是则fail

简单的case

1、实例,写了四个测试用例,其中第四个是失败的

2、运行结果(python3)

python2

3、在python2中执行的结果,中文编码不对,没正常显示中文,遇到这种情况,可以自定义异常输出,python3正常。有时候也可以根据实际需要采用自定义异常输出,要灵活掌握。

参考代码

1# coding=utf-8 2#1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 3 4#2.注释:包括记录创建时间,创建人,项目名称。 5''' 6Created on2019-4-25 7@author: 北京-宏哥 8Project:学习和使用unittest框架编写断言 9'''10#3.导入unittest模块11import unittest12#4.编写测试用例和断言1314class Test(unittest.TestCase):15    def test01(self):16'''判断 a == b '''17a =118b =119        self.assertEqual(a, b)20    def test02(self):21'''判断 a in b '''22a ="hello hongge"23b ="hello hongge and world!"24        self.assertIn(a, b)2526    def test03(self):27'''判断 a is True '''28a = True29        self.assertTrue(a)3031    def test04(self):32'''失败案例'''33a ="北京-宏哥"34b ="hongge"35        self.assertEqual(a, b)3637if__name__ =="__main__":38unittest.main()

自定义异常输出

1、以 assertEqual 为例分析,在pycharm中通过ctrl(command)+🖱️左键我们可以定位到方法的位置:

python3

python2

2、python2翻译:如果两个对象不能相等,就返回失败,相当于 return: first==second

      python3如果你断言的 语句正确 则什么反应都没有,但是如果你出错之后 就会报出    AssertionError 并且错误可以自己填写。

3、这里除了相比较的两个参数 first 和 second,还有第三个参数 msg=None,这个 msg 参数就是遇到异常后自定义输出信息

4、参考代码

# coding=utf-8#1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

#2.注释:包括记录创建时间,创建人,项目名称。'''Created on2019-4-25@author: 北京-宏哥

Project:学习和使用unittest框架编写断言'''#3.导入unittest模块

import unittest

#4.编写测试用例和断言class Test(unittest.TestCase):

    def test01(self):

        '''判断 a == b '''        a =1        b =1        self.assertEqual(a, b)

    def test02(self):

        '''判断 a in b '''        a ="hello hongge"        b ="hello hongge and world!"        self.assertIn(a, b)

    def test03(self):

        '''判断 a is True '''        a = True

        self.assertTrue(a)

    def test04(self):

        '''失败案例'''        a ="北京-宏哥"        b ="hongge"        self.assertEqual(a, b,msg='失败原因: %s!=%s'%(a,b))if__name__ =="__main__":

    unittest.main()

小结

  unittest断言开篇就介绍这里,另外大家也不要纠结python2或者python3,建议小伙伴们使用python3,因为python2到2020年官方就好像不会维护了!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容