# coding:utf-8
import requests
import unittest
import csv
import ddt
# 读取csv参数文件,遍历取值放入到dict_data列表中
def csv_redeFile():
bid_info = csv.DictReader(open('E:\\PL-Discover\\jiekou_unittest\\case1\\jiangxi.csv', 'r', encoding='utf-8'))
dict_data = []
for lines in bid_info:
if bid_info.line_num == 1:
continue
else:
dict_data.append(lines)
return dict_data
# unittest使用的是DDT参数化方法
@ddt.ddt
class Test_zytb(unittest.TestCase):
def setUp(self):
pass
@ddt.data(*csv_redeFile())
@ddt.unpack
def test_01(self, pre, province, level, division):
self.post_url = "http://xxxxxxxx/volunteer/unpaidPlan"
self.post_params = {
"area": "",
"division": division,
"excludeArea": "",
"excludeCollege": "",
"excludeMajor": "",
"intentionCollege": "",
"intentionMajor": "",
"level": level,
"nature": "",
"other": 0,
"precedence": pre,
"province": province,
"score": 0,
"sex": "男",
"subjects": 0}
r = requests.post(self.post_url, json=self.post_params, verify=False)
result = r.json()
self.assertEqual('0', result['code'], msg=(self.post_params["division"], self.post_params["level"], self.post_params["precedence"], self.post_params["province"])) # msg参数,断言失败后显示传入的参数
if __name__ == "__main__":
unittest.main()
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# 批量执行以及生成报告
# coding:utf-8
import unittest
import HTMLTestRunner
import time
# 给文件名添加当前时间,如果要在jenkins上展示html,就要把时间戳去掉
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
def all_case():
# 待执行的目录
case_dir = "./case1"
testcase = unittest.TestSuite()
discover = unittest.defaultTestLoader.discover(case_dir, pattern="test*.py", top_level_dir=None)
# testcase.addTests(discover) # 直接加载discover
for test_suite in discover:
for test_case in test_suite:
# 添加用例到testcase
testcase.addTests(test_case)
print(testcase)
return testcase
if __name__ == "__main__":
# 返回实例
# runner = unittest.TextTestRunner()
report_path = "./report//" + now + 'result.html'
fp = open(report_path, "wb")
# 生成报告
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'这是我的测试报告', description=u'用例执行情况:')
# 返回所有用例
runner.run(all_case())
fp.close()
#测试交流加Q:9261904