UnitTest測試框架

2021-10-13 09:57:43 字數 4212 閱讀 4368

unittest是目前應用都相對較高的測試框架之一,主要用於管理測試用例,最初是應用於單元測試,現在可以進行ui、介面自動化測試。它是python內建的乙個測試框架。unittest包含四大元件

1.匯入環境

import unittest
2.unittest有基本語法規則

a.繼承自unittest.testcase

b.建立用例必須以test_開頭

c.unittest中的執行順序是既定的,a-z a-z 0-9

d.前置和後置在框架中對每乙個測試用例都執行一次

)2.1 單資料傳遞

from ddt import ddt,data

@ddt

class

demo

(unittest.testcase)

:#前置條件

defsetup

(self)

->

none

: self.driver = webdriver.chrome(

)def

teardown

(self)

->

none

: sleep(3)

self.driver.quit(

)#必須以test_開頭

@data(

'selenium'

,'unittest'

)def

test_a1

(self,text)

:# driver = webdriver.chrome()

self.driver.get(

'') self.driver.find_element_by_id(

'kw'

).send_keys(text)

self.driver.find_element_by_id(

'su'

).click(

)

2.2 多資料傳遞

from ddt import ddt,data,unpack

@ddt

class

demo

(unittest.testcase)

:#前置條件

defsetup

(self)

->

none

: self.driver = webdriver.chrome(

)def

teardown

(self)

->

none

: sleep(3)

self.driver.quit(

)#必須以test_開頭

@data(

['','selenium'],

['','unittest'])

@unpack

deftest_a1

(self,url,text)

:# driver = webdriver.chrome()

self.driver.get(url)

self.driver.find_element_by_id(

'kw'

).send_keys(text)

self.driver.find_element_by_id(

'su'

).click(

)

2.3 yaml檔案實現資料驅動

首先新建乙個yaml檔案,注意每組資料要以-作為開始

yaml檔案的讀取

@ddt

class

demo

(unittest.testcase)

:#前置條件

defsetup

(self)

->

none

: self.driver = webdriver.chrome(

)def

teardown

(self)

->

none

: sleep(3)

self.driver.quit(

)#必須以test_開頭

# @data(*read_file())

# @unpack

@file_data(

'test.yaml'

)def

test_a1

(self,

**user)

: url =

''self.driver.get(url)

self.driver.find_element_by_xpath(

'/html/body/div[4]/div/div[2]/div[2]/form/div[1]/input'

).send_keys(user.get(

'name'))

self.driver.find_element_by_xpath(

'/html/body/div[4]/div/div[2]/div[2]/form/div[2]/input'

).send_keys(user.get(

'pwd'))

self.driver.find_element_by_xpath(

'/html/body/div[4]/div/div[2]/div[2]/form/div[3]/button'

).click(

)

自動化測試主要用於對流程來進行測試,斷言就是自動化測試中的預期結果與實際結果的對比。

self.assertequal(name,

'zhangsan'

,msg=

'姓名錯誤'

)#判斷name是否等於zhangsan,不等於的話報錯資訊為msg

skip跳過用例

1.無條件跳過用例

@unittest.skip(

'跳過'

)def

test_4

(self)

:print

('test_4'

)

2.有條件跳過skipunless

@unittest.skipunless(

0>1,

'有條件跳過'

)def

test_5

(self)

:print

('test_5'

)

3.有條件跳過skipif

@unittest.skipif(

2>1,

'跳過'

)def

test_6

(self)

:print

('test_6'

)

4.expectfailure

在self.expectedfailre遇到錯誤時程式會報錯,如果加上@unittest.expectedfailre程式不會報錯,unittest框架不記錄程式出錯。

@unittest.expectedfailure

deftest_7

(self)

:print

('test_7'

) self.assertequal(2,

3,msg=

'not equal'

)

python測試框架unittest(1)

需要測試的 如下 def add city country city,country city and country city country return city and country.title 先寫乙個簡單的測試類 import unittest from city country im...

關於unittest測試框架的使用

一直用的是pytest,公司介面自動化用的是unittest,孰勝孰劣不好分析,但是都要學習,適應環境才能得到提高。testcase是測試用例類,所有執行用例的類都要繼承unittest.testcase類 class test unittest.testcase 每乙個繼承unittest.tes...

python單元測試unittest框架

環境 pycharm 2016.2 python 3.5 待測試的類 widget.py 測試類 auto.py 測試結果 總結 1。第一步 先寫好測試類 2。第二步 匯入unittest模組及測試的類,運用setup 方法做測試前的準備工作,如建立資料庫連線,運用teardown 方法做測試後的清...