前提:導入HTMLTestRunner模塊--將HTMLTestRunner.py放入python環境變量目錄(通過sys.path查看)
步驟1. 創建Testsuite對象 -- unittest.test()
步驟2. 將用例加入到Testsuite -- suite.addTest(GetUserTest('test_get_user'))
步驟3. 創建文件保存測試結果,設置報告內容 -- 注意必須是二進制wb
步驟4. 以報告模版運行testSuite
注意:不能用pycharm的unittest模式運行,否則無法生成報告。 直接運行代碼。
import unittest,requests,HTMLTestRunner
class GetUserTest(unittest.TestCase):
def tearDown(self):
print('tear down...')
def setUp(self):
print('tear...up')
def test_get_user(self):
res = requests.get('http://api.map.baidu.com/telematics/v3/weather?location=%E5%98%89%E5%85%B4&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ').json()
status = res.get('status')
s_status = 201
self.assertEquals(s_status,status)
def test_get_user2(self):
res = requests.get('http://api.map.baidu.com/telematics/v3/weather?location=%E5%98%89%E5%85%B4&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ').json()
message = res.get('message')
s_message = 'APP'
self.assertIn(s_message,message)
if __name__=='__main__':
suite = unittest.TestSuite()
suite.addTest(GetUserTest('test_get_user'))
suite.addTest(GetUserTest('test_get_user2'))
fr = open('res.html','wb')
report = HTMLTestRunner.HTMLTestRunner(stream=fr,title='測試報告',description='測試報告詳情')
report.run(suite)
if __name__=='__main__':
# suite = unittest.makeSuite(GetUserTest) #運行類下面的test所有用例
suite = unittest.defaultTestLoader.discover('.','unit*.py') #運行當前目錄下,以unit開頭的所有用例
fr = open('res1.html','wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fr,title='測試報告',description='測試報告詳情')
runner.run(suite)