久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > pytest框架四之?dāng)嘌?

        pytest框架四之?dāng)嘌?/h1>
        來(lái)源:千鋒教育
        發(fā)布人:qyf
        時(shí)間: 2022-09-02 17:12:10 1662109930

          今天這篇技術(shù)文章要分享的是pytest框架當(dāng)中的斷言。會(huì)從以下幾個(gè)方面來(lái)分享:

        pytest框架四之?dāng)嘌? /></a></p>
<p><strong>  一、斷言的概念</strong></p>
<p>  簡(jiǎn)單來(lái)講就是實(shí)際結(jié)果和期望結(jié)果去對(duì)比,符合預(yù)期結(jié)果那就測(cè)試通過(guò),不符合預(yù)期那就測(cè)試失敗。</p>
<p><strong>  二、pytest框架斷言常用的方法</strong></p>
<p>  在pytest框架里面,斷言主要是用到assert</p>
<p>  assert xx 判斷xx為真</p>
<p>  assert not xx 判斷xx不為真</p>
<p>  assert a in b 判斷b包含a</p>
<p>  assert a == b 判斷a等于b</p>
<p>  assert a != b 判斷a不等于b</p>
<p><strong>  三、pytest框架的斷言與unittest框架的斷言有什么區(qū)別</strong></p>
<p>  在pytest框架里面,斷言只用一種方式assert就可以實(shí)現(xiàn)了,簡(jiǎn)單方便。</p>
<p>  unittest框架里面,斷言分了好幾種類型:</p>
<p>  1、基本的布爾斷言,即:要么正確,要么錯(cuò)誤的驗(yàn)證</p>
<p>  斷言方法 斷言描述</p>
<p>  assertEqual(arg1, arg2, msg=None) 驗(yàn)證arg1=arg2,不等則fail</p>
<p>  assertNotEqual(arg1, arg2, msg=None) 驗(yàn)證arg1 != arg2, 相等則fail</p>
<p>  assertTrue(expr, msg=None) 驗(yàn)證expr是true,如果為false,則fail</p>
<p>  assertFalse(expr,msg=None) 驗(yàn)證expr是false,如果為true,則fail</p>
<p>  assertIs(arg1, arg2, msg=None) 驗(yàn)證arg1、arg2是同一個(gè)對(duì)象,不是則fail</p>
<p>  assertIsNot(arg1, arg2, msg=None) 驗(yàn)證arg1、arg2不是同一個(gè)對(duì)象,是則fail</p>
<p>  assertIsNone(expr, msg=None) 驗(yàn)證expr是None,不是則fail</p>
<p>  assertIsNotNone(expr, msg=None) 驗(yàn)證expr不是None,是則fail</p>
<p>  assertIn(arg1, arg2, msg=None) 驗(yàn)證arg1是arg2的子串,不是則fail</p>
<p>  assertNotIn(arg1, arg2, msg=None) 驗(yàn)證arg1不是arg2的子串,是則fail</p>
<p>  assertIsInstance(obj, cls, msg=None) 驗(yàn)證obj是cls的實(shí)例,不是則fail</p>
<p>  assertNotIsInstance(obj, cls, msg=None) 驗(yàn)證obj不是cls的實(shí)例,是則fail</p>
<p>  2.比較斷言,如比較兩個(gè)變量的值(跟上面的布爾斷言區(qū)別不大,主要是通過(guò)比較兩個(gè)變量的值得出布爾值)</p>
<p>  assertAlmostEqual (first, second, places = 7, msg = None, delta = None)</p>
<p>  驗(yàn)證first約等于second。 palces: 指定精確到小數(shù)點(diǎn)后多少位,默認(rèn)為7</p>
<p>  assertNotAlmostEqual (first, second, places, msg, delta)</p>
<p>  驗(yàn)證first不約等于second。 palces: 指定精確到小數(shù)點(diǎn)后多少位,默認(rèn)為7</p>
<p>  注: 在上述的兩個(gè)函數(shù)中,如果delta指定了值,則first和second之間的差值必須≤delta</p>
<p>  assertGreater (first, second, msg = None)</p>
<p>  驗(yàn)證first > second,否則fail</p>
<p>  assertGreaterEqual (first, second, msg = None)</p>
<p>  驗(yàn)證first ≥ second,否則fail</p>
<p>  assertLess (first, second, msg = None)</p>
<p>  驗(yàn)證first < second,否則fail</p>
<p>  assertLessEqual (first, second, msg = None)</p>
<p>  驗(yàn)證first ≤ second,否則fail</p>
<p>  assertRegexpMatches (text, regexp, msg = None)</p>
<p>  驗(yàn)證正則表達(dá)式regexp搜索匹配的文本text。 regexp:通常使用re.search()</p>
<p>  assertNotRegexpMatches (text, regexp, msg = None)</p>
<p>  驗(yàn)證正則表達(dá)式regexp搜索不匹配的文本text。 regexp:通常使用re.search()</p>
<p>  3.復(fù)雜斷言(一般用的比較少,像斷言兩個(gè)列表、元組等)<span style= (省略)

          從上面也可以看出來(lái),unittest框架的斷言的確是比pytest框架要復(fù)雜很多。

          四、pytest框架斷言的使用

          除了上面說(shuō)的常用的斷言方法:

          assert xx 判斷xx為真

          assert not xx 判斷xx不為真

          assert a in b 判斷b包含a

          assert a == b 判斷a等于b

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

          還可以這么用:

          1、想知道斷言失敗時(shí)的一些關(guān)于失敗的原因等說(shuō)明信息,assert也能滿足該功能。

          assert 斷言的內(nèi)容,”斷言的說(shuō)明”

          2、一些測(cè)試用例中,比如異常測(cè)試用例,測(cè)試的結(jié)果必然是失敗會(huì)報(bào)出異常的。這時(shí)候用例的期望結(jié)果就是該異常。

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

          最后給大家附上代碼:

          # #!/usr/bin/python3

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

          # @Author : 九九

          # @FileName: test_assert.py

          # @Software: PyCharm

          import pytest

          # 定義一個(gè)測(cè)試類

          class TestAssert():

          # 定義一個(gè)功能

          # 傳一個(gè)變量,判斷變量是否為偶數(shù),如果為偶數(shù)則用例通過(guò),否則用例失敗

          def func1(self,a):

          if a%2==0:

          return True

          else:

          return False

          # 定義一個(gè)測(cè)試用例

          def test_func1(self):

          assert self.func1(3)

          # 定義一個(gè)測(cè)試用例,驗(yàn)證包含斷言的方法

          def test_in(self):

          # 定義一個(gè)列表

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

          # 驗(yàn)證數(shù)字3是不是在list_demo里面,如果在,則用例通過(guò),否則用例失敗

          assert 3 in list_demo

          # 定義一個(gè)測(cè)試用例,驗(yàn)證斷言的不包含方法

          def test_notin(self):

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

          # 驗(yàn)證數(shù)字7不包含在list_demo里面,如果不包含,則用例通過(guò),否則用例失敗

          assert 5 not in list_demo

          # 定義一個(gè)測(cè)試用例,驗(yàn)證斷言的判斷相等的方法

          def test_ass(self):

          name="九九"

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

          # 定義一個(gè)測(cè)試用例,驗(yàn)證異常信息斷言

          def test_zero_division(self):

          # 斷言異常

          with pytest.raises(ZeroDivisionError) as exc:

          1/0

          # 判斷異常的類型是否和預(yù)期一致

          assert exc.type==ZeroDivisionError

          # 斷言異常的value值和預(yù)期是否一致

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

          更多關(guān)于軟件測(cè)試培訓(xùn)的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        軟件開(kāi)發(fā)管理流程中會(huì)出現(xiàn)哪些問(wèn)題?

        一、需求不清需求不明確是導(dǎo)致項(xiàng)目失敗的主要原因之一。如果需求沒(méi)有清晰定義,開(kāi)發(fā)人員可能會(huì)開(kāi)發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問(wèn)...詳情>>

        2023-10-14 13:43:21
        軟件定制開(kāi)發(fā)中的敏捷開(kāi)發(fā)是什么?

        軟件定制開(kāi)發(fā)中的敏捷開(kāi)發(fā)是什么軟件定制開(kāi)發(fā)中的敏捷開(kāi)發(fā),從宏觀上看,是一個(gè)高度關(guān)注人員交互,持續(xù)開(kāi)發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

        2023-10-14 13:24:57
        什么是PlatformIo?

        PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái),它為眾多硬件平臺(tái)和開(kāi)發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡(jiǎn)化了開(kāi)發(fā)過(guò)程,并能兼容各種...詳情>>

        2023-10-14 12:55:06
        云快照與自動(dòng)備份有什么區(qū)別?

        1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

        2023-10-14 12:48:59
        服務(wù)器為什么要用Linux?

        服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

        2023-10-14 12:34:11
        快速通道
        监利县| 长汀县| 商洛市| 连平县| 顺平县| 枣阳市| 财经| 香河县| 土默特右旗| 南乐县| 邢台市| 浙江省| 庄浪县| 涟源市| 香格里拉县| 苏尼特右旗| 永康市| 永年县| 侯马市| 湘乡市| 浏阳市| 定结县| 文化| 油尖旺区| 日照市| 繁峙县| 得荣县| 拉萨市| 邵阳县| 兰州市| 北宁市| 周至县| 峨山| 酉阳| 泰来县| 湖州市| 咸阳市| 积石山| 延长县| 治县。| 黄山市|