1. 程式人生 > >將生成的測試報告發送郵件

將生成的測試報告發送郵件

首先從電腦上讀取excel表格,使用HTMLTestRunner模組生成測試報告

# !/usr/bin/env python
# coding:utf-8
import xlrd
import unittest
import requests
import HTMLTestRunner
import time

class Test(unittest.TestCase):

    def duqu(self, filename='C:\\Users\\dell\\Desktop\\test.xls'):  # 讀取 Excel檔案
        data = xlrd.open_workbook(filename)  # 開啟檔案把引數傳給 data
table = data.sheets()[0] # 通過索引順序獲取Excel 檔案 parameter = table.row_values(1) # 獲取整行資料 獲取Excel 第二行資料 #jsoninfo = eval(parameter[3]) jsoninfo = parameter[3] # 因為 parameter 變數型別是str 需要用eval函式轉換成dict url = 'http://www.senbaba.com' + parameter[2] # 基礎地址 加上測試介面測路徑 return
url, parameter[1], jsoninfo def test_text(self): auth = self.duqu() # 呼叫 duqu 函式 r = requests.request("%s" % auth[1], auth[0], params=auth[2]) # requests庫作為介面核心,傳入url,post請求,json引數 #requests.request(method, url, **kwargs) self.assertIn(r.text,'"code":"OK"') #self.assertEqual(r.status_code, 200) # 斷言code 是否等於200
def test_code(self): auth = self.duqu() # 呼叫 duqu 函式 r = requests.request("%s" % auth[1], auth[0], params=auth[2]) # requests庫作為介面核心,傳入url,post請求,json引數 # requests.request(method, url, **kwargs) #self.assertIn('"code":"OK"', r.text) self.assertEqual(r.status_code, 404) # 斷言code 是否等於200 return r.status_code ''' def suite(): suiteTest = unittest.TestSuite() suiteTest.addTest(Test("test_text")) suiteTest.addTest(Test("test_code")) return suiteTest ''' if __name__=="__main__": # unittest.main()如果不生成測試包報告的話,就可以加這句 testunit=unittest.TestSuite() testunit.addTest(Test("test_text"))#將測試用例加入到測試容器中 testunit.addTest(Test("test_code")) now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))#獲取當前時間,這樣便於下面的使用。 filename="result"+now+".html" fp = open('D://'+filename, 'wb') #filepath='D:\\"result"+now+".html"' runner=HTMLTestRunner.HTMLTestRunner(stream=fp, title='test result', description=u'result:') runner.run(testunit) fp.close()

接下來要將該測試報告發送到郵箱