《selenium2 python 自動化測試實戰》(21)——unittest單元測試框架解析
阿新 • • 發佈:2017-12-31
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單元測試框架解析