1. 程式人生 > >《selenium2 python 自動化測試實戰》(21)——unittest單元測試框架解析

《selenium2 python 自動化測試實戰》(21)——unittest單元測試框架解析

nbsp add pic post 二維碼 mage ron 而且 aaa

unittest是展開自動化測試的基礎——這個框架很重要!

我們先自己寫一個測試類:

1、被測試類 Widthget.py:

# coding: utf-8

class Widthget:
def __init__(self, size=(10, 10)): self._size = size

def getSize(self): return self._size

def reSize(self, width, height): if width < 0 or height < 0:
raise ValueError, ‘illegal size‘ self._size = (width, height)

2、測試類:

# coding: utf-8

from Widthget import Widthget
import unittest


# 執行測試的類
class WidthgetTestCase(unittest.TestCase): def setUp(self): self.width = Widthget()

def testSize(self): self.assertEqual(self.width.getSize(), (10, 10))

def testResize(self): self.width.reSize(20, 20) self.assertEqual(self.width.getSize(), (20, 20))

def tearDown(self): self.width = None

# 構造測試集
def suite(): tc = unittest.TestSuite() tc.addTest(Widthget("testSize")) tc.addTest(Widthget("testResize"))
return tc

if __name__ == ‘__main__‘: # unittest.main() runner = unittest.TextTestRunner() runner.run(suite())

運行測試文件可以看到:

技術分享圖片

  • 優化1:

我們沒必要單獨寫構造測試集的方法,也就是說我們可以直接將suite()方法放到if __name__==‘__main__‘:裏面:

if __name__ == ‘__main__‘:

    tc = unittest.TestSuite()
    tc.addTest(Widthget("testSize"))
    tc.addTest(Widthget("testResize"))

    runner = unittest.TextTestRunner()
    runner.run()

執行測試文件,可以看到用例也是可以通過的。

  • 優化2

測試用例都以test開頭命名,比如測試登錄,用例就命名為testLogin,測試退出用例就命名為testLoginOut,上面我們寫的例子之所以能這麽順利的就通過,主要原因就在於我的用例(testSize,testResize)都是以test開頭的。這是unittest框架的默認規定。

接下來就是批量執行用例,這個我們在接口測試框架的時候介紹過,而且是專門介紹過,大家可以看一下

接口測試基礎——第6篇unittest模塊(一)

接口測試基礎——第6篇unittest模塊(二)

接口測試基礎——第6篇unittest模塊(三)

這些都是批量執行的方式。上面我們講的這個只是個很low的例子,大家隨便看一下就行了,接下來我會寫一個具體的selenium框架,大家直接參考一下就可以。如果大家感興趣,就需要回顧一下這些知識了:

接口測試基礎——第一篇smtplib發送文字郵件

接口測試框架——第五篇-用例和運行

HTMLTestRunner顯示用例打印內容

微信公眾號搜索“自動化測試實戰”或掃描下方二維碼添加關註~~~

技術分享圖片

《selenium2 python 自動化測試實戰》(21)——unittest單元測試框架解析