Exemple #1
0
    def test_register(self, item):
        case_id = item["case_id"]
        title = item["title"]
        url = cf.get_value(conf_env, "prefix_url") + item["url"]
        method = item["method"]
        expected = item["expected"]
        data = item["data"]

        new_data = Context.register_parameterization(data)  # 将数据中进行参数替换

        msg = "测试" + title

        success_msg = cf.get_value("case", "success")
        fail_msg = cf.get_value("case", "fail")

        ret = self.request.send_request(method, url, new_data)

        try:
            self.assertEqual(ret.text, expected, msg)
            do_excel.write_value(case_id + 1, cf.get_int("case", "actual_col"),
                                 ret.text)
            do_excel.write_value(case_id + 1, cf.get_int("case", "result_col"),
                                 success_msg)
            logger.debug("{}, 执行结果为:{}".format(msg, success_msg))
        except AssertionError as e:
            do_excel.write_value(case_id + 1, cf.get_int("case", "actual_col"),
                                 ret.text)
            do_excel.write_value(case_id + 1, cf.get_int("case", "result_col"),
                                 fail_msg)
            logger.error("{}, 执行结果为:{}, 异常结果为:{}".format(msg, fail_msg, e))
            raise e
Exemple #2
0
    def test_recharge(self, item):
        case_id = item["case_id"]
        title = item["title"]
        url = cf.get_value(conf_env, "prefix_url") + item["url"]
        method = item["method"]
        expected = item["expected"]
        data = item["data"]

        new_data = Context.recharge_parameterization(data)  # 将数据中进行参数替换

        check_sql = item["check_sql"]
        if check_sql:
            new_sql = Context.recharge_parameterization(check_sql)
            result = self.handler_mysql.select(new_sql)
            amount_before = float(result["LeaveAmount"])
            amount_before = round(amount_before, 2)

        msg = "测试" + title
        success_msg = cf.get_value("case", "success")
        fail_msg = cf.get_value("case", "fail")

        ret = self.request.send_request(method, url, new_data)

        try:
            self.assertIn(str(expected), ret.text, msg)

            # 校验充值金额
            data_dict = json.loads(data)
            recharge_amount = data_dict.get("amount")

            if check_sql:
                result = self.handler_mysql.select(new_sql)
                amount_after = float(result["LeaveAmount"])
                amount_after = round(amount_after, 2)

                self.assertEqual(round(amount_after - amount_before, 2),
                                 recharge_amount, "数据库充值金额校验失败")

            do_excel.write_value(case_id + 1, cf.get_int("case", "actual_col"),
                                 ret.text)
            do_excel.write_value(case_id + 1, cf.get_int("case", "result_col"),
                                 success_msg)
            logger.debug("{}, 执行结果为:{}".format(msg, success_msg))
        except AssertionError as e:
            do_excel.write_value(case_id + 1, cf.get_int("case", "actual_col"),
                                 ret.text)
            do_excel.write_value(case_id + 1, cf.get_int("case", "result_col"),
                                 fail_msg)
            logger.error("{}, 执行结果为:{}, 异常结果为:{}".format(msg, fail_msg, e))
            raise e
    def test_invest(self, item):
        case_id = item["case_id"]
        title = item["title"]
        url = cf.get_value(conf_env, "prefix_url") + item["url"]
        method = item["method"]
        expected = item["expected"]
        data = item["data"]

        new_data = Context.invest_parameterization(data)  # 将数据中进行参数替换

        check_sql = item["check_sql"]
        if check_sql:
            new_sql = Context.invest_parameterization(check_sql)
            result = self.handler_mysql.select(new_sql)
            loan_id = result.get("id")
            setattr(Context, "loan_id", loan_id)

        msg = "测试" + title
        success_msg = cf.get_value("case", "success")
        fail_msg = cf.get_value("case", "fail")

        ret = self.request.send_request(method, url, new_data)

        try:
            self.assertIn(str(expected), ret.text, msg)

            do_excel.write_value(case_id + 1, cf.get_int("case", "actual_col"),
                                 ret.text)
            do_excel.write_value(case_id + 1, cf.get_int("case", "result_col"),
                                 success_msg)
            logger.debug("{}, 执行结果为:{}".format(msg, success_msg))
        except AssertionError as e:
            do_excel.write_value(case_id + 1, cf.get_int("case", "actual_col"),
                                 ret.text)
            do_excel.write_value(case_id + 1, cf.get_int("case", "result_col"),
                                 fail_msg)
            logger.error("{}, 执行结果为:{}, 异常结果为:{}".format(msg, fail_msg, e))
            raise e
Exemple #4
0
 def tearDownClass(cls) -> None:
     cls.request.close()
     logger.debug("\n{:=^40s}".format("结束测试"))
Exemple #5
0
 def setUpClass(cls) -> None:
     cls.request = HandleRequest()
     logger.debug("\n{:=^40s}".format("开始执行测试"))
Exemple #6
0
import unittest
from datetime import datetime

from libs.HTMLTestRunnerNew import HTMLTestRunner

from scripts.constance import DATAS_DIR, REPORTS_DIR, USER_ACCOUNT_FILE_PATH
from scripts.handle_configure import cf
from scripts.handle_user import generate_user_config
from scripts.handle_log import logger

# from datas import test_05_invest

# 测试环境
test_env = sys.argv[1]
conf_env = f"api_{test_env}"
logger.debug(f"当前测试环境是:【{conf_env}】")


if not os.path.exists(USER_ACCOUNT_FILE_PATH):
    generate_user_config()


suites = unittest.defaultTestLoader.discover(DATAS_DIR)

# loader = unittest.TestLoader()
# suites = loader.loadTestsFromModule(test_05_invest)


report_name = datetime.strftime(datetime.now(), "%Y%m%d%H%M%S") + "_testReport.html"
report_file_path = os.path.join(REPORTS_DIR, report_name)