def test_add_bid(self,case): logger.info("执行用例开始:{}".format(case.title)) case.data = getdata(case.data) logger.debug("请求的数据是:{}".format(case.data)) if case.sql: case.sql = getdata(case.sql) before_data = self.mysql.fecth_one(case.sql)["id"] logger.info("添加项目前查询到的id:{}".format(before_data))
def test_recharge(self, case): logger.info("执行用例开始:{}".format(case.title)) case.data = getdata(case.data) logger.debug("请求的数据是:{}".format(case.data)) if case.sql: case.sql = getdata(case.sql) before_data = self.mysql.fecth_one(eval( case.sql)["sql1"])["leaveamount"] logger.info("用户充值之前的余额是:{}".format(before_data))
def http_res(self,method,url,data=None,json = None): url = Config().getvalue("url","pre_url")+url logger.info("请求的URL:{}".format(url)) if type(data) == str: data = eval(data) if method.lower() == "get": resp = self.session.request(method,url,params=data) elif method.lower() == "post": if json: resp = self.session.request(method, url, json = json) else: resp = self.session.request(method,url,data = data) else: resp = None logger.info("输入的请求方式不对") return resp
class Recharge(unittest.TestCase): @classmethod def setUpClass(cls): cls.session = HttpRquests() logger.info("执行用例前的前置工作") def setUp(self): self.mysql = DoMysql() @data(*ExcelTest(cantins.data_path, "recharge").read_excel()) def test_recharge(self, case): logger.info("执行用例开始:{}".format(case.title)) case.data = getdata(case.data) logger.debug("请求的数据是:{}".format(case.data)) if case.sql: case.sql = getdata(case.sql) before_data = self.mysql.fecth_one(eval( case.sql)["sql1"])["leaveamount"] logger.info("用户充值之前的余额是:{}".format(before_data)) res = self.session.http_res(case.method, case.url, case.data).json() try: self.assertEqual(str(case.exp), res["code"]) ExcelTest(cantins.data_path, "recharge").write_excel(case.case_id + 1, res["code"], "PASS") if res["msg"] == "充值成功": after_data = self.mysql.fecth_one(eval( case.sql)["sql1"])["leaveamount"] logger.info("充值之后用户的余额是:".format(after_data)) self.assertEqual(before_data + eval(case.data)["amount"], after_data) financelog_data = self.mysql.fecth_one(eval(case.sql)["sql2"]) logger.info(financelog_data["incomemembermoney"]) self.assertEqual(after_data, financelog_data["incomemembermoney"]) except AssertionError as e: ExcelTest(cantins.data_path, "recharge").write_excel(case.case_id + 1, res["code"], "FILE") logger.error("测试报错了:{}".format(e)) raise e logger.info("测试结束:{}".format(case.title))
class BidLoanCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.http_request = HttpRquests() logger.info("执行用例前的前置工作") def setUp(self): self.mysql = DoMysql() @data(*(ExcelTest(cantins.data_path, "bidLoan").read_excel())) def test_bidloan(self, case): logger.info("执行用例开始:{}".format(case.title)) case.data = getdata(case.data) case.data = getdata(case.data) logger.debug("请求的数据是:{}".format(case.data)) if case.title == "正常添加项目": case.sql = getdata(case.sql) if case.title == "正常投标": case.sql = getdata(case.sql) before_data_1 = self.mysql.fecth_one(eval( case.sql)["sql2"])["leaveamount"] logger.info("投标之前的用户余额是:{}".format(before_data_1))
def tearDownClass(cls): cls.http_request.session_close() logger.info("用例执行结束后的后置工作")
def setUpClass(cls): cls.http_request = HttpRquests() logger.info("执行用例前的前置工作")
def tearDownClass(cls): cls.session.session_close() logger.info("用例执行结束后的后置工作")
def setUpClass(cls): cls.session = HttpRquests() logger.info("执行用例前的前置工作")
"bidLoan").write_excel(case.case_id + 1, res["code"], "FAILD") logger.error("测试报错了:{}".format(e)) raise e else: ExcelTest(cantins.data_path, "bidLoan").write_excel(case.case_id + 1, res["code"], "PASS") if res["msg"] == "加标成功": data_new = self.mysql.fecth_one(case.sql)["id"] setattr(Loan, "loan_id", data_new) if res["msg"] == "竞标成功": #投资成功后,校验数据库的数据信息 after_data_1 = self.mysql.fecth_one(eval( case.sql)["sql1"])["amount"] logger.info("用户投资的金额是:{}".format(after_data_1)) after_data_2 = self.mysql.fecth_one(eval( case.sql)["sql2"])["leaveamount"] logger.info("用户投标成功后的余额:{}".format(after_data_2)) after_data_3 = self.mysql.fecth_one(eval( case.sql)["sql3"])["amount"] self.assertEqual(before_data_1 - after_data_2, after_data_1) self.assertEqual(before_data_1 - after_data_2, after_data_3) logger.info("测试结束:{}".format(case.title)) def tearDown(self): self.mysql.close_mysql() @classmethod def tearDownClass(cls): cls.session.session_close()