一、unittest 原理(https://docs.python.org/3/library/unittest.html)
1、unittest 框架包含哪些內容?
TestFixture:
- SetUp
- TestCase
- TearDown
TestCase
TestSuite
TestRunner
import unittest
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget('The widget')
def test_default_widget_size(self):
self.assertEqual(self.widget.size(), (50,50),
'incorrect default size')
def test_widget_resize(self):
self.widget.resize(100,150)
self.assertEqual(self.widget.size(), (100,150),
'wrong size after resize')
def tearDown(self):
self.widget.dispose()
def suite():
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase('test_default_widget_size'))
suite.addTest(WidgetTestCase('test_widget_resize'))
return su
if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(suite())
二、DDT-數據驅動(https://ddt.readthedocs.io/en/latest/example.html)
1、什么是數據驅動?
- 數據驅動測試,即黑盒測試,又稱為功能測試
- 數據驅動單元測試,為數據源中的每行,重復進行一種單元測試
- 數據驅動單元測試,常用情況是使用多個輸入值測試 API
- “測試數據”與“執行代碼”分離
2、DDT 的原理?
- Python 下的數據驅動框架名稱也叫 DDT(Data-Driven Tests)
- 效果:使用多個數據運行一條用例,使其表現為多條用例
- 原理:通過 Python 的裝飾器,裝飾每條用例
3、數據驅動測試的意義?
- 1.代碼復用率高,一次編寫多條數據復用邏輯
- 2.異常排查效率高,測試執行隔離,數據間無影響
- 3.代碼可維護性高,提高代碼的易讀性
三、Lettuce-行為驅動
1、什么是行為驅動?
- 行為驅動開發,Behavior-Driven Development,簡寫 BDD
- 在軟件工程中,BDD 是一種敏捷軟件開發的技術
- 用自然語言書寫非程序員可讀的測試用例
2、Lettuce 的原理?
- Lettuce 是基於 Python 語言的行為驅動測試框架
- Lettuce 將測試用例和自動化測試代碼分離
- Lettuce 寫測試用例就像寫文本一樣清晰
四、KDT-關鍵字驅動
1、什么是關鍵字驅動?(https://zh.wikipedia.org/wiki/關鍵字驅動測試)
- 關鍵字驅動測試(keyword-driven testing)也稱為表格驅動測試或行動字驅動測試
- 它將創建測試程序的步驟分為規划和實現兩個階段
- 關鍵字驅動使不懂代碼的人可以完成自動化過程
2、Robot Framework 的原理?
- 基於 RIDE 可視化工具,導入類庫(例如:AppiumLibrary)
- 使用 AppiumLibrary 中提供的關鍵字,實現用例過程
- 使用 RIDE 完成用例的執行和結果的管理
五、生成測試報告
1、如何收集測試結果?(http://tungwaiyip.info/software/HTMLTestRunner.html)
- 使用 HTMLTestRunner.py 生成 HTML 測試報告
2、如何管理測試報告?
- 以時間戳作為報告的名稱
六、測試郵件通知
1、如何定義自己的郵件服務?
- 郵箱設置(SMTP)
2、如何自動發送測試報告?
- 使用 SendReport.py 發送測試報告
歡迎關注微信公眾號"測試開發Stack"