Example #1
0
 def test_add(self, case):
     # 准备用例数据
     phone = conf.get("test_data", "phone")
     pwd = conf.get("test_data", "pwd")
     member_id, token = HandleSetup.handle_setup(phone, pwd)
     start_count = TestAdd.handle_sql(self, case, member_id)
     data, res = HandleSetup.handle_case(case, member_id, token)
     row = case["case_id"] + 1
     expected = eval(case["expected"])
     # 断言,比对预期结果和实际结果
     try:
         if start_count != 0:
             self.assertEqual(expected["code"], res["code"])
             self.assertEqual(expected["msg"], res["msg"])
             end_count = TestAdd.handle_sql(self, case, member_id)
             self.assertEqual(1, end_count - start_count)
     except AssertionError as e:
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #2
0
 def test_register(self, case):
     # 准备用例数据
     method = case["method"]
     url = conf.get("env", "url") + case["url"]
     if case["interface"] == "register":
         # 注册接口,则随机生成一个用户名和email
         EnvData.name = self.random_username()
         EnvData.email = self.random_email()
     data = eval(replace_data(case["data"]))
     expected = eval(replace_data(case["expected"]))
     row = case["case_id"] + 1
     # 第二步:发送请求获取实际结果
     res = (requests.request(method=method, url=url, json=data)).json()
     # 第三步:断言
     try:
         assert_dict(expected, res)
         # 判断是否需要进行sql校验
         if case["check_sql"]:
             sql = replace_data(case["check_sql"])
             res = db.find_count(sql)
             self.assertEqual(1, res)
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #3
0
 def test_withdraw(self, case):
     # 第一步准备用例参数
     phone = conf.get("test_data", "phone")
     pwd = conf.get("test_data", "pwd")
     member_id, token = HandleSetup.handle_setup(phone, pwd)
     # 判断该用例是否需要数据库校验,获取提现之前的余额
     start_money = TestWithdraw.handle_sql(self, case, member_id)
     data, res = HandleSetup.handle_case(case, member_id, token)
     row = case["case_id"] + 1
     expected = eval(case["expected"])
     # 第三步:断言预期结果和实际结果
     try:
         if start_money != 0:
             self.assertEqual(expected["code"], res["code"])
             self.assertEqual(expected["msg"], res["msg"])
             end_money = TestWithdraw.handle_sql(self, case, member_id)
             withdraw_money = decimal.Decimal(str(data["amount"]))
             self.assertEqual(withdraw_money, start_money - end_money)
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #4
0
    def test_interface(self, case):
        login()
        newproject()
        # 1.准备用例数据
        EnvData.name = random_intername()
        url = conf.get("env", "url") + case["url"]
        method = case["method"]
        data = eval(replace_data(case["data"]))
        expected = eval(replace_data(case["expected"]))
        headers = {"Authorization": getattr(EnvData, "token")}
        row = case["case_id"] + 1
        if case["check_sql"]:
            sql = replace_data(case["check_sql"])
            start_count = db.find_count(sql)
        res = (request(method=method, url=url, json=data, headers=headers)).json()
        # 第三步,断言预期结果和实际结果
        try:
            assert_dict(expected, res)

            if case["check_sql"]:
                sql = replace_data(case["check_sql"])
                end_count = db.find_count(sql)
                self.assertEqual(1, end_count - start_count)

        except AssertionError as e:
            log.error("用例--{}--执行未通过".format(case["title"]))
            log.debug("预期结果:{}".format(expected))
            log.debug("实际结果:{}".format(res))
            log.exception(e)
            self.excel.write_data(row=row, column=8, value="未通过")
            raise e
        else:
            # 结果回写excel中
            log.info("用例--{}--执行通过".format(case["title"]))
            self.excel.write_data(row=row, column=8, value="通过")
Example #5
0
 def test_login(self, case):
     # 第一步:准备用例数据
     # 请求方法
     method = case["method"]
     # 请求地址
     url = case["url"]
     # 请求参数
     data = eval(case["data"])
     # 请求头
     headers = eval(conf.get("env", "headers"))
     # 预期结果
     expected = eval(case["expected"])
     # 用例所在行
     row = case["case_id"] + 1
     # 第二步:发送请求获取实际结果
     response = request(method=method, url=url, json=data, headers=headers)
     # 获取实际结果
     res = response.json()
     # 第三步:断言
     try:
         self.assertEqual(expected["code"], res["code"])
         self.assertEqual(expected["msg"], res["msg"])
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #6
0
 def test_add(self, case):
     # 准备用例数据
     phone = conf.get("test_data", "phone")
     pwd = conf.get("test_data", "pwd")
     member_id, token = HandleSetup.handle_setup(phone, pwd)
     case["url"] = case["url"].replace("#member_id#", member_id)
     url = conf.get("env", "url") + case["url"]
     method = case["method"]
     headers = {"X-Lemonban-Media-Type": "lemonban.v1"}
     response = request(url=url, method=method, json=data, headers=headers)
     res = response.json()
     row = case["case_id"] + 1
     expected = eval(case["expected"])
     try:
         self.assertEqual(expected["code"], res["code"])
         self.assertEqual(expected["msg"], res["msg"])
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #7
0
 def test_audit(self, case):
     # 第一步:准备数据:获取管理员token
     admin_phone = conf.get("test_data", "phone")
     admin_pwd = conf.get("test_data", "pwd")
     admin_member_id, admin_token = HandleSetup.handle_setup(admin_phone, admin_pwd)
     # 2:获取普通用户id和token
     phone = conf.get("test_data", "phone")
     pwd = conf.get("test_data", "pwd")
     member_id, token = HandleSetup.handle_setup(phone, pwd)
     #每次添加一个新项目
     url = conf.get("env", "url") + "/loan/add"
     headers = eval(conf.get("env", "headers"))
     headers["Authorization"] = token
     data = {"member_id": member_id,
             "title": "木森借钱造大炮",
             "amount": 2000,
             "loan_rate": 12.0,
             "loan_term": 3,
             "loan_date_type": 1,
             "bidding_days": 5}
     # 发送请求,添加项目
     response = request(method="post", url=url, json=data, headers=headers)
     res = response.json()
     # 提取项目的id给审核的用例使用
     loan_id = jsonpath.jsonpath(res, "$..id")[0]
     url = conf.get("env", "url") + case["url"]
     data = eval(case["data"].replace("#loan_id#", str(loan_id)))
     headers = eval(conf.get("env", "headers"))
     headers["Authorization"] = admin_token
     method = case["method"]
     expected = eval(case["expected"])
     row = case["case_id"] + 1
     # 第二步:调用接口,获取实际结果
     response = request(url=url, method=method, json=data, headers=headers)
     res = response.json()
     # 第三步:断言
     try:
         self.assertEqual(expected["code"], res["code"])
         self.assertEqual(expected["msg"], res["msg"])
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #8
0
 def test_register(self, case):
     # 第一步:准备用例数据
     # 请求方法
     method = case["method"]
     # 请求地址
     url = conf.get("env", "url") + "/member/register"
     # 判断是否有手机号需要替换
     if "#phone#" in case["data"]:
         # 随机生成一个手机号码
         phone = self.random_phone()
         # 将参数中的#phone#,替换成随机生成的手机号
         case["data"] = case["data"].replace("#phone#", phone)
     # 请求参数
     data = eval(case["data"])
     # 请求头
     headers = eval(conf.get("env", "headers"))
     # 预期结果
     expected = eval(case["expected"])
     # 用例所在行
     row = case["case_id"] + 1
     # 第二步:发送请求获取实际结果
     response = request(method=method, url=url, json=data, headers=headers)
     # 获取实际结果
     res = response.json()
     print("预期结果:", expected)
     print("实际结果:", res)
     # 第三步:断言
     try:
         self.assertEqual(expected["code"], res["code"])
         self.assertEqual(expected["msg"], res["msg"])
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #9
0
 def test_login(self, case):
     method = case["method"]
     url = conf.get("env", "url") + case["url"]
     data = eval(case["data"])
     expected = eval(case["expected"])
     row = case["case_id"] + 1
     res = (request(method, url, json=data)).json()
     try:
         assert_dict(expected, res)
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #10
0
 def test_invest(self, case):
     """投资用例"""
     # 第一步:准备数据
     url = conf.get("env", "url") + case["url"]
     method = case["method"]
     headers = eval(conf.get("env", "headers"))
     if case["interface"] != "login":
         # 如果不是登陆接口,添加一个token
         headers["Authorization"] = getattr(HandleSetup, "token")
     data = eval(replace_data(case["data"]))
     expected = eval(case["expected"])
     row = case["case_id"] + 1
     response = request(url, method, json=data, headers=headers)
     res = response.json()
     if case["interface"] == "login":
         # 如果是登陆接口,提取id和token
         member_id = str(jsonpath.jsonpath(res, "$..id")[0])
         token = "Bearer" + " " + jsonpath.jsonpath(res, "$..token")[0]
         setattr(HandleSetup, "member_id", member_id)
         setattr(HandleSetup, "token", token)
     if case["interface"] == "add":
         # 如果是加标接口,提取id进行保存
         loan_id = str(jsonpath.jsonpath(res, "$..id")[0])
         setattr(HandleSetup, "loan_id", loan_id)
     # 断言
     try:
         self.assertEqual(expected["code"], res["code"])
         self.assertEqual(expected["msg"], res["meg"])
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")
Example #11
0
 def test_add(self, case):
     # 准备用例数据
     url = case["url"]
     method = case["method"]
     headers = {"X-Lemonban-Media-Type": "lemonban.v1"}
     response = request(url=url, method=method, json=data, headers=headers)
     res = response.json()
     row = case["case_id"] + 1
     expected = eval(case["expected"])
     try:
         self.assertEqual(expected["code"], res["code"])
         self.assertEqual(expected["msg"], res["msg"])
     except AssertionError as e:
         # 结果回写excel中
         log.error("用例--{}--执行未通过".format(case["title"]))
         log.debug("预期结果:{}".format(expected))
         log.debug("实际结果:{}".format(res))
         log.exception(e)
         self.excel.write_data(row=row, column=8, value="未通过")
         raise e
     else:
         # 结果回写excel中
         log.info("用例--{}--执行通过".format(case["title"]))
         self.excel.write_data(row=row, column=8, value="通过")