首先从电脑上读取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()
接下来要将该测试报告发送到邮箱