unittest+request接口自动化实例

# 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值