麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > pytest框架四之斷言

pytest框架四之斷言

來源:千鋒教育
發布人:qyf
時間: 2022-09-02 17:12:10 1662109930

  今天這篇技術文章要分享的是pytest框架當中的斷言。會從以下幾個方面來分享:

pytest框架四之斷言

  一、斷言的概念

  簡單來講就是實際結果和期望結果去對比,符合預期結果那就測試通過,不符合預期那就測試失敗。

  二、pytest框架斷言常用的方法

  在pytest框架里面,斷言主要是用到assert

  assert xx 判斷xx為真

  assert not xx 判斷xx不為真

  assert a in b 判斷b包含a

  assert a == b 判斷a等于b

  assert a != b 判斷a不等于b

  三、pytest框架的斷言與unittest框架的斷言有什么區別

  在pytest框架里面,斷言只用一種方式assert就可以實現了,簡單方便。

  unittest框架里面,斷言分了好幾種類型:

  1、基本的布爾斷言,即:要么正確,要么錯誤的驗證

  斷言方法 斷言描述

  assertEqual(arg1, arg2, msg=None) 驗證arg1=arg2,不等則fail

  assertNotEqual(arg1, arg2, msg=None) 驗證arg1 != arg2, 相等則fail

  assertTrue(expr, msg=None) 驗證expr是true,如果為false,則fail

  assertFalse(expr,msg=None) 驗證expr是false,如果為true,則fail

  assertIs(arg1, arg2, msg=None) 驗證arg1、arg2是同一個對象,不是則fail

  assertIsNot(arg1, arg2, msg=None) 驗證arg1、arg2不是同一個對象,是則fail

  assertIsNone(expr, msg=None) 驗證expr是None,不是則fail

  assertIsNotNone(expr, msg=None) 驗證expr不是None,是則fail

  assertIn(arg1, arg2, msg=None) 驗證arg1是arg2的子串,不是則fail

  assertNotIn(arg1, arg2, msg=None) 驗證arg1不是arg2的子串,是則fail

  assertIsInstance(obj, cls, msg=None) 驗證obj是cls的實例,不是則fail

  assertNotIsInstance(obj, cls, msg=None) 驗證obj不是cls的實例,是則fail

  2.比較斷言,如比較兩個變量的值(跟上面的布爾斷言區別不大,主要是通過比較兩個變量的值得出布爾值)

  assertAlmostEqual (first, second, places = 7, msg = None, delta = None)

  驗證first約等于second。 palces: 指定精確到小數點后多少位,默認為7

  assertNotAlmostEqual (first, second, places, msg, delta)

  驗證first不約等于second。 palces: 指定精確到小數點后多少位,默認為7

  注: 在上述的兩個函數中,如果delta指定了值,則first和second之間的差值必須≤delta

  assertGreater (first, second, msg = None)

  驗證first > second,否則fail

  assertGreaterEqual (first, second, msg = None)

  驗證first ≥ second,否則fail

  assertLess (first, second, msg = None)

  驗證first < second,否則fail

  assertLessEqual (first, second, msg = None)

  驗證first ≤ second,否則fail

  assertRegexpMatches (text, regexp, msg = None)

  驗證正則表達式regexp搜索匹配的文本text。 regexp:通常使用re.search()

  assertNotRegexpMatches (text, regexp, msg = None)

  驗證正則表達式regexp搜索不匹配的文本text。 regexp:通常使用re.search()

  3.復雜斷言(一般用的比較少,像斷言兩個列表、元組等) (省略)

  從上面也可以看出來,unittest框架的斷言的確是比pytest框架要復雜很多。

  四、pytest框架斷言的使用

  除了上面說的常用的斷言方法:

  assert xx 判斷xx為真

  assert not xx 判斷xx不為真

  assert a in b 判斷b包含a

  assert a == b 判斷a等于b

  assert a != b 判斷a不等于b

  還可以這么用:

  1、想知道斷言失敗時的一些關于失敗的原因等說明信息,assert也能滿足該功能。

  assert 斷言的內容,”斷言的說明”

  2、一些測試用例中,比如異常測試用例,測試的結果必然是失敗會報出異常的。這時候用例的期望結果就是該異常。

  對于異常的斷言,Pytest的語法是:with pytest.raises(異常類型)

  最后給大家附上代碼:

  # #!/usr/bin/python3

  # -*- coding: utf-8 -*-

  # @Author : 九九

  # @FileName: test_assert.py

  # @Software: PyCharm

  import pytest

  # 定義一個測試類

  class TestAssert():

  # 定義一個功能

  # 傳一個變量,判斷變量是否為偶數,如果為偶數則用例通過,否則用例失敗

  def func1(self,a):

  if a%2==0:

  return True

  else:

  return False

  # 定義一個測試用例

  def test_func1(self):

  assert self.func1(3)

  # 定義一個測試用例,驗證包含斷言的方法

  def test_in(self):

  # 定義一個列表

  list_demo=[1,2,3,4,5,6]

  # 驗證數字3是不是在list_demo里面,如果在,則用例通過,否則用例失敗

  assert 3 in list_demo

  # 定義一個測試用例,驗證斷言的不包含方法

  def test_notin(self):

  list_demo = [1, 2, 3, 4, 5, 6]

  # 驗證數字7不包含在list_demo里面,如果不包含,則用例通過,否則用例失敗

  assert 5 not in list_demo

  # 定義一個測試用例,驗證斷言的判斷相等的方法

  def test_ass(self):

  name="九九"

  assert name=="九","變量的名字,和最終預期的名字不一致,所以失敗"

  # 定義一個測試用例,驗證異常信息斷言

  def test_zero_division(self):

  # 斷言異常

  with pytest.raises(ZeroDivisionError) as exc:

  1/0

  # 判斷異常的類型是否和預期一致

  assert exc.type==ZeroDivisionError

  # 斷言異常的value值和預期是否一致

  assert "division by sss" in str(exc.value)

  更多關于軟件測試培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 色吊丝av中文字幕| 高清仑乱| 第一毛片| 小小影视日本动漫观看免费| 欧美国产在线观看| 国产呦系列免费| 人人爽在线| 国产69精品久久久久777| 韩国伦理片久久电影网| 男生吃女生的jiojio| 自拍另类综合欧美小说| 动漫痴汉电车| 成人av免费电影| 日本边添边摸边做边爱喷水| 好男人社区神马www在线观看| 性按摩xxxx| 中国大陆高清aⅴ毛片| 果冻传媒麻豆电影| 日韩三级视频| zoom和okzoom在线视频| 国产毛片一级| 男的把j放进女人下面视频免费| 色哟哟视频在线| 欧美日韩图片| 亚洲欧美小视频| 娇妻的大杂交| 久爱视频在线| 韩国电影中文字幕在线观看| 丁香伊人| 国产国产成人精品久久| 天天爱夜夜操| 2021国产精品自产拍在线观看| 日本中文字幕一区二区有码在线| 在线中文字幕不卡| 久久亚洲精品无码| 精品久久久久久久久中文字幕| 日本阿v视频高清在线中文 | 1a级毛片免费观看| 琪琪色在线观看| 天天躁日日躁狠狠躁| 国产剧情麻豆剧果冻传媒视频免费|