|
然后,测试脚本的编辑
一切准备就绪,下面通过一个简单的、完整的代码进行演示公共函数的调用,框架的使用及报告的生成。
import unittest
import requests
from Base.readConfig import ReadConfig
from Base.readExcel import ReadExcel
from Base.readExcel import WriteExcel
#实例化
readexcel = ReadExcel('DATABASE','data_address',0)
writeexcel = WriteExcel('DATABASE','data_address',0)
class testcase(unittest.TestCase):
#初始化
def setUp(self):
#获取url
self.base_url = ReadConfig().get_config('HTTP', 'base_url')
self.url = self.base_url + readexcel.get_cell(1,1)
#获取请求头
self.headers = readexcel.get_cell(1,4)
def test_case(self):
nok = 0
ner = 0
# 循环读取excel中的测试数据,进行结果验证,并生成excel形式的测试报告
for i in range(3,readexcel.get_rows()):
#发送网络请求,得到响应值
response = requests.post(self.url, headers=self.headers, data=readexcel.get_cell(i,4).encode('utf-8'))
actualresult = response.json()
#获取excel中的预期结果
expectresult = eval(readexcel.get_cell(i,6))
# 获取需验证的数据
key = eval(readexcel.get_cell(i, 5))
keylen = len(key)
j = 0
for k in range(keylen):
aresult = 'actualresult' + key[k]
eresult = 'expectresult' + key[k]
if eval(aresult) == eval(eresult):
#预期结果和实际结果一致
j = j + 1
if j == keylen:
#测试数据执行通过
nok = nok + 1
writeexcel.set_cell(i, 8, 'SUCCESS')
else:
# 测试数据执行失败,并将实际结果写入excel
ner = ner + 1
writeexcel.set_cell(i, 8, 'FAILURE')
writeexcel.set_cell(i, 7, str(actualresult))
print('第', i + 1, '行用例执行失败:预期结果是', expectresult, '实际结果是', actualresult)
# 保存测试报告
writeexcel.save_excel('testreport', '.xls')
print('测试数据中总共', nok, '条用例执行通过', ner, '条用例执行失败')
#释放资源
def tearDown(self):
pass
if __name__ == '__main__':
#构造测试集合
suite = unittest.TestSuite()
suite.addTest(testcase('test_case'))
#创建html文件
filename = ReadConfig().get_config('DATABASE', 'report_address') + 'testreport.html'
fb = open(filename,"wb")
#执行测试并生成html测试报告
runner = HTMLTestRunner.HTMLTestRunner(stream = fb,description = '针对接口的描述信息',title = '某某的自动化测试报告')
runner.run(suite)
#关闭文件
fb.close()
最后,生成的html报告
|
|