Exemple #1
0
 def test_projects(self,case):
     #准备数据
     url=conf.get("env","url")+case["url"]
     method=case["method"]
     # 随机生成一个项目名称替换
     name=self.random_name()
     setattr(EnvData,"name",name)
     data=eval(replace_data(case["data"]))
     headers = {"Authorization":self.token}
     excepted=eval(replace_data(case["expected"]))
     row_id=case["case_id"]+1
     #发送请求
     response=request(method=method,url=url,json=data,headers=headers)
     res=response.json()
     #断言
     try:
         # 调用断言的方法进行断言
         assert_dict(excepted,res)
         # 判断是否需要进行sql校验,如果有sql语句,需要去数据库查询一下是否有一条该项目的数据
         if case["check_sql"]:
             sql = replace_data(case["check_sql"])
             res_namecount = self.db.find_count(sql)
             self.assertEqual(1, res_namecount)
     except AssertionError as e:
         self.excel.wirte_excel(row=row_id, column=8, value="不通过")
         my_log.error("用例{},{},不通过".format(case["case_id"], case["title"]))
         my_log.debug("预期结果:{}".format(excepted))
         my_log.debug("实际结果:{}".format(res))
         my_log.exception(e)
         # exception将捕获到异常记录到日志中(对应的等级是error)
         # 主动抛出异常
         raise e
     else:
         self.excel.wirte_excel(row=row_id, column=8, value="通过")
         my_log.info("用例{},{},通过".format(case["case_id"], case["title"]))
    def test_name_email_exist(self, case):
        # 准备数据
        # 随机生成一个用户名,保存为类属性
        username = self.random_username()
        setattr(EnvData, "username", username)
        # 随机生成一个email,保存为类属性
        email = self.random_email()
        setattr(EnvData, "email", email)
        url = conf.get("env", "url") + replace_data(case["url"])
        method = case["method"]
        # 随机生成的用户名去数据库查询,如果能查到count为1.否则为0,然后替换掉expected中的count
        if case["check_sql"]:
            sql = replace_data(case["check_sql"])
            namecount = self.db.find_count(sql)
            if namecount == 0:
                count = 0
                setattr(EnvData, "count", str(count))
            else:
                count = 1
                setattr(EnvData, "count", str(count))
        # 注册成功的预期结果比对了username,这个username是随机生成的,所以设置了动态参数获取
        case["expected"] = replace_data(case["expected"])
        excepted = eval(case["expected"])
        row_id = case["case_id"] + 1

        # 发送请求
        response = request(method=method, url=url)
        res = response.json()

        # 断言
        try:
            # 调用断言的方法进行断言
            assert_dict(excepted, res)
        except AssertionError as e:
            self.excel.wirte_excel(row=row_id, column=7, value="不通过")
            my_log.error("用例{},{},不通过".format(case["case_id"], case["title"]))
            my_log.debug("预期结果:{}".format(excepted))
            my_log.debug("实际结果:{}".format(res))
            my_log.exception(e)
            # exception将捕获到异常记录到日志中(对应的等级是error)
            # 主动抛出异常
            raise e
        else:
            self.excel.wirte_excel(row=row_id, column=7, value="通过")
            my_log.info("用例{},{},通过".format(case["case_id"], case["title"]))
 def test_register_login(self, case):
     # 准备数据
     url = conf.get("env", "url") + case["url"]
     method = case["method"]
     # 随机生成一个用户名和邮箱,保存为类属性
     username = self.random_username()
     email = self.random_email()
     # 登录成功的用例直接用上一条注册成功的用户名登录,登录成功的那条用例不需要新生成用户名
     if case["title"] != "登录成功":
         setattr(EnvData, "username", username)
         setattr(EnvData, "email", email)
     case["data"] = replace_data(case["data"])
     data = eval(case["data"])
     # 注册成功的预期结果比对了username,这个username是随机生成的,所以设置了动态参数获取
     case["expected"] = replace_data(case["expected"])
     excepted = eval(case["expected"])
     row_id = case["case_id"] + 1
     # 发送请求
     response = request(method=method, url=url, json=data)
     res = response.json()
     # 断言
     try:
         # 调用断言的方法进行断言
         assert_dict(excepted, res)
         # 判断是否需要进行sql校验,如果有sql语句,需要去数据库查询一下是否有一条该用户名的数据
         if case["check_sql"]:
             sql = replace_data(case["check_sql"])
             res_namecount = self.db.find_count(sql)
             self.assertEqual(1, res_namecount)
     except AssertionError as e:
         self.excel.wirte_excel(row=row_id, column=8, value="不通过")
         my_log.error("用例{},{},不通过".format(case["case_id"], case["title"]))
         my_log.debug("预期结果:{}".format(excepted))
         my_log.debug("实际结果:{}".format(res))
         my_log.exception(e)
         # exception将捕获到异常记录到日志中(对应的等级是error)
         # 主动抛出异常
         raise e
     else:
         self.excel.wirte_excel(row=row_id, column=8, value="通过")
         my_log.info("用例{},{},通过".format(case["case_id"], case["title"]))
Exemple #4
0
class Test_Login():
    # @pytest.mark.skip
    # @pytest.mark.goodno
    @pytest.mark.parametrize("case", LoginCase.success_data)
    def test_login_pass(self, case, login_fixture):
        login_page, index_page = login_fixture
        # 传入参数登录
        login_page.login(case["mobile"], case["pwd"])
        #     断言是否进入首页
        res = index_page.get_info()
        try:
            assert case["excepted"] == res
        except AssertionError as e:
            my_log.error("用例----{}---不通过".format(case["title"]))
            my_log.exception(e)
            raise e
        else:
            my_log.error("用例----{}---通过".format(case["title"]))
            # 退出
            index_page.exit()
Exemple #5
0
        res = index_page.get_info()
        try:
            assert case["excepted"] == res
        except AssertionError as e:
            my_log.error("用例----{}---不通过".format(case["title"]))
            my_log.exception(e)
            raise e
        else:
            my_log.error("用例----{}---通过".format(case["title"]))
            # 退出
            index_page.exit()

    # @pytest.mark.goodno
    @pytest.mark.parametrize("case", LoginCase.error_data)
    def test_login_fail(self, case, login_fixture):
        login_page, index_page = login_fixture
        # 刷新页面
        login_page.refresh()
        # 传入参数登录
        login_page.login(case["mobile"], case["pwd"])
        #     断言错误提示是否一致
        res = login_page.login_error_info()
        try:
            assert case["excepted"] == res
        except AssertionError as e:
            my_log.error("用例----{}---不通过".format(case["title"]))
            my_log.exception(e)
            raise e
        else:
            my_log.error("用例----{}---通过".format(case["title"]))