Example #1
0
class LoginTest(RunTest):
    """登录模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "ByPassword"))
    def test_ByPassword(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        res = self.start(self.isSkip_num, self.apiName_num, url,
                         self.method_num, self.headers_num, self.para_num,
                         self.data_num, self.desc_num, self.relateData_num,
                         self.expect_num, value)
        try:
            self.assertEqual(True, checkOut(res, self.expect))
            self.logger.info("测试结果         :测试通过!")
        except Exception as err:
            self.logger.error("测试结果         :测试失败!")
            json_dict = self.a.json_data[self.project]["robot_data"]
            robot_url = json_dict["robot_url"]
            mobile = json_dict["mobile"]
            send_ding(robot_url,
                      mobile,
                      content=f"测试失败!!!接口返回为:{res}, 接口预期结果为:{self.expect}")
            raise err
Example #2
0
class LoginTest(RunTest):
    """登录商户系统"""

    # 获取当前文件路径god
    project = os.path.dirname(__file__)[-4:]
    # 读取xls中god列
    a = ReadData(project, project)
    # 通过类名获取模块名
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') % (self.fieldname, count))

    def tearDown(self):
        self.logger.debug("...end %s case %s...".center(80, '#') % (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "LoginByPass"))
    def test_LoginByPass(self, value):
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        res = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num, self.para_num,
                         self.data_num, self.desc_num, self.relateData_num, self.expect_num, value, verify=False)
        print(res)
        try:
            self.assertEqual(True, checkOut(self.res, self.expect))
            sss["cookies"] = requests.utils.dict_from_cookiejar(res.cookies)
            self.logger.info("测试结果         :测试通过!")
        except Exception as err:
            self.logger.error("测试结果         :测试失败!")
            json_dict = self.a.json_data[self.project]["robot_data"]
            robot_url = json_dict["robot_url"]
            mobile = json_dict["mobile"]
            send_ding(robot_url, mobile, content=f"登录异常,接口返回为:{self.res}, 接口预期结果为:{self.expect}")
            raise err
Example #3
0
class LoginTest(unittest.TestCase):
    """地图找店模块"""

    # 通过文件名获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    a = ReadData(project)

    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]

    @ddt.data(*a.get_data_by_api(fieldname, "ByPassword"))
    def test_ByPassword(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env_num = self.a.get_num_name("环境")
        body_num = self.a.get_num_name("请求体")
        expect_num = self.a.get_num_name("预期结果")
        env = value[env_num]
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        result = requests.post(url=url, json=eval(value[body_num]))
        res = result.json()
        # print(res["code"])
        self.assertEqual(res["code"], eval(value[expect_num])["code"])
Example #4
0
class commissionTest(RunTest):
    """佣金模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "aCommissionStatistic"))
    def test_aCommissionStatistic(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        sss["cookies"] = ";".join(
            ['{}={}'.format(*_) for _ in sss["cookie"].items()])
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "bcommissionorg"))
    def test_bcommissionorg(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "cCommissionList"))
    def test_cCommissionList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "dCommissionFactoringInfo"))
    def test_dCommissionFactoringInfo(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "exfProtocolList"))
    def test_exfProtocolList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "fxfProtocolInfo"))
    def test_fxfProtocolInfo(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "gReferralList"))
    def test_gReferralList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "hGuideList"))
    def test_hGuideList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "iOrderList"))
    def test_iOrderList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "kOperator"))
    def test_kOperator(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "lProjectList"))
    def test_lProjectList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "mApplyProtocolUrl"))
    def test_mApplyProtocolUrl(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "nSettlementList"))
    def test_nSettlementList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "oBankAcountList"))
    def test_oBankAcountList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "paddFastSettlement"))
    def test_paddFastSettlement(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "qFactoringCancel"))
    def test_qFactoringCancel(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        sss["hash_commissionApplyId"] = '{"commissionApplyType":2,"commissionApplyId":"' + sss[
            "hash_commissionApplyId"] + '"}'
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)
Example #5
0
class Rent_detailTest(RunTest):
    """租房详情页"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-9:]
    # print(project)
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        cls.cookie_txt = rent_saas_login(sss["env"])
        sss["roomNo"] = int(time.time())

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "create_new_rent_house"))  #接口对应的名称
    def test_01_create_new_rent_house(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)
        sss["ID4"] = str(sss["ID4"])
        sss["restful_rentID"] = json.dumps({"rentId": sss["ID4"]})

    @ddt.data(*a.get_data_by_api(fieldname,
                                 "update_rent_base_info"))  # 接口对应的名称
    def test_02_update_rent_base_info(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)

    @ddt.data(*a.get_data_by_api(fieldname, "update_RentStatus"))  # 接口对应的名称
    def test_03_update_RentStatus(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)

    @ddt.data(*a.get_data_by_api(fieldname, "add_rent_follow_up"))  # 接口对应的名称
    def test_04_add_rent_follow_up(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)
Example #6
0
class DeveloperTest(RunTest):
    """开发商列表"""

    # 获取当前文件路径god
    project = os.path.dirname(__file__)[-3:]
    # 读取xls中god列
    a = ReadData(project, "god")
    # 通过类名获取模块名
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                print(sss["env"])
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "DeveloperList"))
    def test_DeveloperList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "DeveloperSearch"))
    def test_DeveloperSearch(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "DeveloperEidt"))
    def test_DeveloperEidt(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)
Example #7
0
class OrderTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp
        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                json_dict = self.a.json_data[self.project]["robot_data"]
                robot_url = json_dict["robot_url"]
                mobile = json_dict["mobile"]
                send_ding(
                    robot_url,
                    mobile,
                    content=
                    f"{self.desc}测试失败!接口返回为:{self.res}, 接口预期结果为:{self.expect}")
                raise err
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "aOrder"))
    def test_aOrder(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        #print("签名",str_sign_list)
        value.append(str_sign_list)
        print("签名", value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "aPurOrder"))
    def test_aPurOrder(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        #print("签名",str_sign_list)
        value.append(str_sign_list)
        print("签名", value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
        time.sleep(3)

    @ddt.data(*a.get_data_by_api(fieldname, "bOrderdetail"))
    def test_bOrderdetail(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "cOrderList"))
    def test_cOrderList(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "dBookingList"))
    def test_dBookingList(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "eBookingToOrder"))
    def test_eBookingToOrder(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "fChange"))
    def test_fChange(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        receivableAmount = random.randint(10, 1000)
        sss["receivableAmount"] = receivableAmount
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "gChecklist"))
    def test_gChecklist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "hperformancechange"))
    def test_hperformancechange(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "iperformancelist"))
    def test_iperformancelist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "jperformencedetail"))
    def test_jperformencedetail(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "kamountchange"))
    def test_kamountchange(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        contractAmount = random.randint(50000, 100000)
        sss["contractAmount"] = contractAmount
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "lamountchangelist"))
    def test_lamountchangelist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "mdatechange"))
    def test_mdatechange(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "ndatachangelist"))
    def test_ndatachangelist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "ordercancel"))
    def test_ordercancel(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "pcancellist"))
    def test_pcancellist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "qchangephone"))
    def test_qchangephone(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        print(str_sign_list)
        value.append(str_sign_list)
        print("qianming", value)
        sss["version"] = sss["versionName"][1:]
        customerMobile = random.randint(18000000000, 18900000000)
        sss["customerMobile"] = str(customerMobile)
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "rphonechanglist"))
    def test_rphonechanglist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "dOrderSign"))
    def test_dOrderSign(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        #print(str_sign_list)
        value.append(str_sign_list)
        #print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "sreceiptmoney"))
    def test_sreceiptmoney(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  # 表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  # a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        t = time.time()
        paymentDoc = round(t * 1000)
        print(paymentDoc)
        sss["paymentDoc"] = paymentDoc
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "trefund"))
    def test_trefund(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  # 表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  # a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        '''t = time.time()
        paymentDoc = round(t * 1000)
        print(paymentDoc)
        sss["paymentDoc"] = paymentDoc'''
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
Example #8
0
class StoreTest(RunTest):
    """门店模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    # @ddt.data(*a.get_data_by_api(fieldname, "StoreList"))
    # def test_StoreList(self, value):
    # 	"""门店列表"""
    # 	# 通过函数名获取apiName参数的值
    # 	self.apiName = (inspect.stack()[0][3])[5:]
    # 	env = value[self.env_num]
    # 	url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
    # 	result = self.start(self.isSkip_num, self.method_num, url, self.para_num, self.data_num, self.api_name,
    # 	                    self.desc_num, self.relateData_num, value, headers=value[self.headers_num])
    # 	# result = requests.post(url=url, json=value[self.data_num])
    # 	res = result.json()
    # 	self.logger.debug(f"响应结果         :{res}")
    # 	self.logger.debug(f"预期结果         :{value[self.expect_num]}")
    # 	# print(res["code"])
    # 	self.assertEqual(res["code"], value[self.expect_num]["code"])
    # 	data = value[self.data_num]
    # 	if res["data"]["results"]:
    # 		if res["data"]["totalRecord"] >= data[0]["pageSize"]:
    # 			self.assertEqual(len(res["data"]["results"]), data[0]["pageSize"])
    # 		else:
    # 			self.assertEqual(len(res["data"]["results"]), res["data"]["totalRecord"])
    # 	else:
    # 		self.assertEqual(res["data"]["results"], None)
    # 	print(res["data"]["totalRecord"])

    @ddt.data(*a.get_data_by_api(fieldname, "StoreList"))
    def test_StoreList(self, value):
        """门店列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
Example #9
0
class WebLoginTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp
        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                json_dict = self.a.json_data[self.project]["robot_data"]
                robot_url = json_dict["robot_url"]
                mobile = json_dict["mobile"]
                send_ding(
                    robot_url,
                    mobile,
                    content=
                    f"{self.desc}测试失败!接口返回为:{self.res}, 接口预期结果为:{self.expect}")
                raise err
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "WebLogin"))
    def test_WebLogin(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        #  获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***

        # print("weburl=",url)
        sss["referer"] = url[:-18]
        sss["webhost"] = self.a.get_domains()[env][8:]
        # print("ssssssssssssss",sss)
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        sss["version"] = sss["versionName"][1:]
        # 调起请求
        num = sss["referer"] + "/ddfs/login"
        # print("num = ",num)
        sss["Referer"] = num
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
        sss["cookies"] = requests.utils.dict_from_cookiejar(
            self.result.cookies)
Example #10
0
class AgentTest(RunTest):
    """地图找店模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "listAgent"))
    def test_listAgent(self, value):
        """经纪人列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["cityIds_agent"] = [
            "3", "450", "619", "852", "1406", "2179", "9393", "10204"
        ]
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "getAgentDetailInfo"))
    def test_getAgentDetailInfo(self, value):
        """经纪人详情信息"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["agentId"] = 6537143
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "getCityMap"))
    def test_getCityMap(self, value):
        """城市列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "getClueList"))
    def test_getClueList(self, value):
        """指定经纪人线索列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["agentId_str"] = str(sss["agentId"])
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"])

    @ddt.data(*a.get_data_by_api(fieldname, "getCompany"))
    def test_getCompany(self, value):
        """获取指定公司信息"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["companyId"] = 82200912
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"])

    @ddt.data(*a.get_data_by_api(fieldname, "getOrgNetCardData"))
    def test_getOrgNetCardData(self, value):
        """根据ID获取经纪人网商卡数据"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "listStoreOrCompanyAgent"))
    def test_listStoreOrCompanyAgent(self, value):
        """根据经纪人获得门店店长信息"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["storeId"] = 82351552
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
Example #11
0
class ddmfTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp
        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                json_dict = self.a.json_data[self.project]["robot_data"]
                robot_url = json_dict["robot_url"]
                mobile = json_dict["mobile"]
                send_ding(
                    robot_url,
                    mobile,
                    content=
                    f"{self.desc}测试失败!接口返回为:{self.res}, 接口预期结果为:{self.expect}")
                raise err
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "aaloginddmf"))
    def test_aaloginddmf(self, value):

        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddmf"][env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)
        sss["cookies1"] = requests.utils.dict_from_cookiejar(
            self.result.cookies)
        sss['userIdd'] = str(sss['userIdd'])

        print(sss)

    @ddt.data(*a.get_data_by_api(fieldname, "nSettlementList"))
    def test_nSettlementList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddmf"][env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        dict_cookie = sss["cookies1"]
        sss["cookies2"] = ";".join(
            ['{}={}'.format(*_) for _ in dict_cookie.items()])
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)
        #请求响应的data返回结果
        data_list = sss["dataresult"]
        print(data_list)
        data_dict = {}
        key = sss["orderNumber"]
        value = sss["commissionId"]
        for i in range(0, len(key)):
            data_dict[key[i]] = value[i]
        print("返回的列表为", data_dict)
        orderId = sss["orderId"]
        print(orderId)
        sss["commissionIdreal"] = data_dict[str(orderId)]
        print(sss["commissionIdreal"])

        #请求响应的orderId,全部提取出来,放到一个列表里
        # order_list = sss["orderNumber"]
        # print(order_list)
        # #遍历要请佣的orderId在order_list的位置,并且将下标返回
        # orderIdtest = str(sss["orderId"])
        # print(orderIdtest)
        # print (len(order_list))
        # for i in range(1,len(order_list)):
        #     if order_list[i] == orderIdtest:
        #         #在dataresult这个列表里,把这个下表元素提取出来,这个元素是一个字
        #         sss["index"] = i
        #         #然后再把这个字典中的factoringCommissionId取出来,作为请佣时传入的factoringCommissionId
        #     else:
        #         print ("列表里没有这个order")
        # print (sss["index"])
        # index = sss["index"]
        # data_dict = data_list[index]
        # #sss["factoringCommissionId"] = data_dict["factoringCommissionId"]

    @ddt.data(*a.get_data_by_api(fieldname, "oBankAcountList"))
    def test_oBankAcountList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddmf"][env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "paddFastSettlement"))
    def test_paddFastSettlement(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddmf"][env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "pbgetthebussinessId"))
    def test_pbgetthebussinessId(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddmf"][env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "qupload"))
    def test_qupload(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddmf"][env] + uri
        sss["invoiceCode"] = random.randint(12345678, 87654321)
        sss["invoiceNo"] = random.randint(12345678, 98765432)
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)

        time.sleep(5)
Example #12
0
class TradeTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp


        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') % (self.fieldname, count))

    def tearDown(self):
        if self.result:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                json_dict = self.a.json_data[self.project]["robot_data"]
                robot_url = json_dict["robot_url"]
                mobile = json_dict["mobile"]
                send_ding(robot_url, mobile, content=f"{self.desc}测试失败!接口返回为:{self.res}, 接口预期结果为:{self.expect}")
                raise err
        self.logger.debug("...end %s case %s...".center(80, '#') % (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "aaposliest"))
    def test_aaposliest(self, value):
        #关联pos单
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        #获取当前时间戳
        ts = time.time()
        paymenttime = round(ts*1000)
        sss["paymentTime"] = paymenttime
        #获取凭证号,考虑用时间戳来弄
        #paymentId = random.randint(384728348,9284348594399)
        sss["paymentDoc"] = paymenttime
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
                                 self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "abcheck"))
    def test_abcheck(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
                                 self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "abdchange"))
    def test_abdchange(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
                                 self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "abedetail"))
    def test_abedetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
                                 self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "accoutlist1"))
    def test_accoutlist1(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "accoutlist2"))
    def test_accoutlist2(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "breceivable"))
    def test_breceivable(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "creceivablelist"))
    def test_creceivablelist(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "dreceivablestatus"))
    def test_dreceivablestatus(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "eaddconfirm"))
    def test_eaddconfirm(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "fconfirmlist"))
    def test_fconfirmlist(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "gconfirm"))
    def test_gconfirm(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "hticket"))
    def test_hticket(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "iticketlist1"))
    def test_iticketlist1(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "iticketlist2"))
    def test_iticketlist2(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname,"jticketdetail"))
    def test_jticketdetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "kvioce"))
    def test_kvioce(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "lvioceconfirm"))
    def test_lvioceconfirm(self, value):
        self.desc = value[self.desc_num]
        #开票确认
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "money"))
    def test_money(self, value):
        self.desc = value[self.desc_num]
        #回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "nmoneyconfirmlist"))
    def test_nmoneyconfirmlist(self, value):
        self.desc = value[self.desc_num]
        #回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "nmoneyconfirm"))
    def test_nmoneyconfirm(self, value):
        self.desc = value[self.desc_num]
        #回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "oticketcheck"))
    def test_oticketcheck(self, value):
        self.desc = value[self.desc_num]
        #回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "paxpensereferal"))
    def test_paxpensereferal(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "pexpensereferal"))
    def test_pexpensereferal(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

        # result1 = self.result.text
        # print("result1=",result1)
        # result2 = json.dumps(result1)
        # result2[]
        # self.assertAlmostEqual("")






    @ddt.data(*a.get_data_by_api(fieldname, "qexpendlist"))
    def test_qexpendlist(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "rexpenddetail"))
    def test_rexpenddetail(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "sexpendcheck"))
    def test_sexpendcheck(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "texpendpayment"))
    def test_texpendpayment(self, value):
        self.desc = value[self.desc_num]
        # 费用申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "uexpendpaylist"))
    def test_uexpendpaylist(self, value):
        self.desc = value[self.desc_num]
        # 费用申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "vexpendpaydetail"))
    def test_vexpendpaydetail(self, value):
        self.desc = value[self.desc_num]
        # 费用申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "wexpendpaycheck"))
    def test_wexpendpaycheck(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "xabuget"))
    def test_xabuget(self, value):
        self.desc = value[self.desc_num]
        # 超预算申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "ybugetlist"))
    def test_ybugetlist(self, value):
        self.desc = value[self.desc_num]
        # 超预算申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "ycbugetdetdail"))
    def test_ycbugetdetdail(self, value):
        self.desc = value[self.desc_num]
        # 超预算申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "ydbugetdetcheck"))
    def test_ydbugetdetcheck(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "zaddbusiness"))
    def test_zaddbusiness(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "zbaddbuscontract"))
    def test_zbaddbuscontract(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "zdaddbudgetplan"))
    def test_zdaddbudgetplan(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "zebugetplancheck"))
    def test_zebugetplancheck(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "zfdelbusiness"))
    def test_zfdelbusiness(self, value):
        self.desc = value[self.desc_num]
        # 回款申请
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
        time.sleep(5)

    @ddt.data(*a.get_data_by_api(fieldname, "yereceiptconfirm"))
    def test_yereceiptconfirm(self, value):
        self.desc = value[self.desc_num]
        # 线下收款确认
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "paxpensereferaltest"))
    def test_paxpensereferaltest(self, value):
        self.desc = value[self.desc_num]
        # 线下收款确认
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
                                 self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
Example #13
0
class NewHouseTest(RunTest):
    """个人中心模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        cls.result = None
        sss["date"] = getTime()
        sss["monday"] = mondayOfWeek()
        sss["monthDay"] = monthDay()

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "queryEstates"))
    def test_1_queryEstates(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[7:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
        if self.res["data"]["pageInfo"]["total"] > self.res["data"][
                "pageInfo"]["pageSize"]:
            self.assertEqual(len(self.res["data"]["pageData"]), 20)
        else:
            self.assertEqual(len(self.res["data"]["pageData"]),
                             self.res["data"]["pageInfo"]["total"])

    @ddt.data(*a.get_data_by_api(fieldname, "getEstateXfData"))
    def test_2_getEstateXfData(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[7:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"])

    @ddt.data(*a.get_data_by_api(fieldname, "getEstateDetail"))
    def test_3_getEstateDetail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[7:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["restful"] = json.dumps({"estateId": sss["houseId"]})
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"])

    @ddt.data(*a.get_data_by_api(fieldname, "deleteRecommendEstate"))
    def test_4_deleteRecommendEstate(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[7:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"])

    @ddt.data(*a.get_data_by_api(fieldname, "addRecommendEstate"))
    def test_5_addRecommendEstate(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[7:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"])
Example #14
0
class EstateTest(RunTest):
    """楼盘相关用例"""

    # 获取当前文件路径god
    project = os.path.dirname(__file__)[-4:]
    # 读取xls中god列
    a = ReadData(project, "shop")
    # 通过类名获取模块名
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                print(sss["env"])
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "EstateAll"))
    def test_EstateAll(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "EstateMy"))
    def test_EstateMy(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Basic"))
    def test_Basic(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "BasicEdit"))
    def test_BasicEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Property"))
    def test_Property(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "PropertyEdit"))
    def test_PropertyEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Layout"))
    def test_Layout(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "LayoutEdit"))
    def test_LayoutEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "BuildList"))
    def test_BuildList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "BuildEdit"))
    def test_BuildEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "HouseHoldList"))
    def test_HouseHoldList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "HouseHoldEdit"))
    def test_HouseHoldEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Album"))
    def test_Album(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Amenity"))
    def test_Amenity(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "AmenityEdit"))
    def test_AmenityEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Developer"))
    def test_Developer(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "DeveloperEdit"))
    def test_DeveloperEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "SalesOff"))
    def test_SalesOff(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "SalesOffEdit"))
    def test_SalesOffEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "NewsList"))
    def test_NewsList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)
Example #15
0
class HomeTest(RunTest):
    """项目经理微信网店相关用例"""

    # 获取当前文件路径
    project = os.path.dirname(__file__)[-11:]
    # 读取xls中对应的列
    a = ReadData(project, "miniprogram")
    # 通过类名获取模块名
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                print(sss["env"])
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "StoreHome"))
    def test_StoreHome(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "VisitCount"))
    def test_VisitCount(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "NewsList"))
    def test_NewsList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "CouponList"))
    def test_CouponList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ProjectList"))
    def test_ProjectList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "Website"))
    def test_Website(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)
Example #16
0
class GetVersionTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "version"))
    def test_version(self, value):
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        #  获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = "https://shopapi.fangdd.com" + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        try:
            host = self.a.get_domains()[env][8:]
            sss["host"] = host

            str_sign_list = [
                self.timestamp, value[self.method_num].upper(), uri
            ]
            value.append(str_sign_list)
            # 调起请求
            res = self.start(self.project,
                             self.isSkip_num,
                             self.apiName_num,
                             url,
                             self.method_num,
                             self.headers_num,
                             self.para_num,
                             self.data_num,
                             self.desc_num,
                             self.relateData_num,
                             self.expect_num,
                             value,
                             verify=False)

            self.assertEqual(True, checkOut(self.res, self.expect))
            self.logger.info("测试结果         :测试通过!")
        except Exception as err:
            self.logger.error("测试结果         :测试失败!")
            json_dict = self.a.json_data[self.project]["robot_data"]
            robot_url = json_dict["robot_url"]
            mobile = json_dict["mobile"]
            #::send_ding(robot_url, mobile, content=f"测试失败!!!接口返回为:{err}, 接口预期结果为:{self.expect}")
            raise err
Example #17
0
class H5Test(RunTest):
    """H5相关用例"""

    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                print(sss["env"])
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "StoreRange"))
    def test_StoreRange(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "LayoutList"))
    def test1_LayoutList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)
        sss["layoutId"] = self.res['data'][0]['layoutId']
        sss["layoutName"] = self.res['data'][0]['layoutName']
        sss["sequenceNo"] = self.res['data'][0]['sequenceNo']

    @ddt.data(*a.get_data_by_api(fieldname, "LayoutDetail"))
    def test2_LayoutDetail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName) + str(sss["layoutId"])
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "LayoutEdit"))
    def test3_LayoutEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "QuantityDtail"))
    def test1_QuantityDtail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "QuantityEdit"))
    def test2_QuantityEdit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ClueList"))
    def test_ClueList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ClueAdd"))
    def test_ClueAdd(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ClueOperationData"))
    def test_ClueOperationData(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ClueRealtorDayList"))
    def test_ClueRealtorDayList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ClueRealtorWeekList"))
    def test_ClueRealtorWeekList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ClueRealtorMonList"))
    def test_ClueRealtorMonList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "AddRealtorRecord"))
    def test_AddRealtorRecord(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "TotalStatistics"))
    def test_TotalStatistics(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreMonList"))
    def test_StoreMonList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreWeekList"))
    def test_StoreWeekList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreDayList"))
    def test_StoreDayList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreDetail"))
    def test_StoreDetail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreDetailData"))
    def test_StoreDetailData(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "UserSop"))
    def test_UserSop(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "UserWeekSop"))
    def test_UserWeekSop(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "UserSopHelp"))
    def test_UserSopHelp(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ProjectMonthSop"))
    def test_ProjectMonthSop(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "ProjectSopHelp"))
    def test_ProjectSopHelp(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "SopProjectInfo"))
    def test_SopProjectInfo(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)
Example #18
0
class Rent_DatalistTest(RunTest):
    """租房数据列表模块"""

    # 通过文件夹路径获取project参数的值
    project = os.path.dirname(__file__)[-9:]
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        cls.cookie_txt = rent_saas_login(sss["env"])

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "list_Inspect"))  #租房实勘列表
    def test_01_list_Inspect(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)

    @ddt.data(*a.get_data_by_api(fieldname, "list_RentKey"))  # 租房钥匙列表
    def test_02_list_RentKey(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)

    @ddt.data(*a.get_data_by_api(fieldname, "list_RentFllowup"))  # 租房跟进列表
    def test_03_list_RentFllowup(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)

    @ddt.data(*a.get_data_by_api(fieldname, "list_RentGuide"))  # 租房带看列表
    def test_04_list_RentGuide(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[8:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookie_txt)
Example #19
0
class LoginTest(RunTest):
    project = os.path.dirname(__file__)[-4:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "login_password"))
    def test_login_password(self, value):
        self.apiName = (inspect.stack()[0][3])[5:]
        #  获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains(
        )[env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        sss["versionNo"] = sss["versionNo"][1:]
        # 调起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False)
        sss["userId_tp"] = str(sss["userId_tp"])
Example #20
0
class IncomeTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                json_dict = self.a.json_data[self.project]["robot_data"]
                robot_url = json_dict["robot_url"]
                mobile = json_dict["mobile"]
                send_ding(
                    robot_url,
                    mobile,
                    content=
                    f"{self.desc}接口失败!接口返回为:{self.res}, 接口预期结果为:{self.expect}")
                raise err
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "aincomelist"))
    def test_aincomelist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        # print(sss)
        # print(sss["userId"])
        # print(sss["token"])
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "bincomelist"))
    def test_bincomelist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        # print(sss)
        # print(sss["userId"])
        # print(sss["token"])
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "crejectlist"))
    def test_crejectlist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        # print(sss)
        # print(sss["userId"])
        # print(sss["token"])
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "dreturnedlist"))
    def test_dreturnedlist(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        # print(sss)
        # print(sss["userId"])
        # print(sss["token"])
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "einvoice"))
    def test_einvoice(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        # print(sss)
        # print(sss["userId"])
        # print(sss["token"])
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "fnoticket"))
    def test_fnoticket(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        # print(sss)
        # print(sss["userId"])
        # print(sss["token"])
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "gticket"))
    def test_gticket(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  #表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  #a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "hrefund"))
    def test_hrefund(self, value):
        self.desc = value[self.desc_num]
        self.apiName = (inspect.stack()[0][3]
                        )[5:]  # 表示读取列表中的第一个元素(字典元素)的第三个元素?????但是第三个应该是 请求头啊
        env = value[self.env_num]

        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["ddxf"][
            env] + uri  # a.get_domains是字典,因为有好几个环境,根据测试环境来获得域名,域名+uri就是访问地址
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]),
            str(sss["token"]), self.timestamp, value[self.method_num].upper(),
            uri
        ]
        # print(str_sign_list)
        value.append(str_sign_list)
        # print(value)
        sss["version"] = sss["versionName"][1:]
        # # # 调起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
Example #21
0
class OrgTest(RunTest):
    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-7:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') % (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(self.robot_url, self.mobile,
                          content=f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url, self.mobile, content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') % (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "userdetail"))
    def test_userdetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "carriedetail"))
    def test_carriedetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "eagrrement"))
    def test_eagrrement(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "fcitylist"))
    def test_fcitylist(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "gcitydetail"))
    def test_gcitydetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "icityuser"))
    def test_icityuser(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "jteamdetail"))
    def test_jteamdetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "kchangeteamuser"))
    def test_kchangeteamuser(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "larealist"))
    def test_larealist(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)


    @ddt.data(*a.get_data_by_api(fieldname, "mareadetail"))
    def test_mareadetail(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "oaddcity"))
    def test_oaddcity(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "pgivecity"))
    def test_pgivecity(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "quserlist"))
    def test_quserlist(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num,
                                 self.para_num, self.data_num, self.desc_num, self.relateData_num, self.expect_num,
                                 value, cookies=sss["cookies"], verify=False)
Example #22
0
class MapSourceTest(RunTest):
    """地图找店模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "CityDistrict"))
    def test_CityDistrict(self, value):
        """城市区域列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "CitySection"))
    def test_CitySection(self, value):
        """城市区域板块列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreInfoList"))
    def test_StoreInfoList(self, value):
        """地图门店区域列表"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "StoreByCodition"))
    def test_StoreByCodition(self, value):
        """门店列表-地图区域条件"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
Example #23
0
class xfcheckTest(RunTest):
    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

        cls.result = None
        cls.desc = None

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                json_dict = self.a.json_data[self.project]["robot_data"]
                robot_url = json_dict["robot_url"]
                mobile = json_dict["mobile"]
                send_ding(
                    robot_url,
                    mobile,
                    content=
                    f"{self.desc}测试失败!接口返回为:{self.res}, 接口预期结果为:{self.expect}")
                raise err
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "agetcommission"))
    def test_agetcommission(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()["commiss"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "bcheck"))
    def test_bcheck(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]

        # 通过环境参数获得接口url
        url = self.a.get_domains()["commiss"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

        time.sleep(5)
Example #24
0
class ReportTest(RunTest):
    """业务订单风控模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        cls.cookies = json.loads(read_cookie.readcookie().replace("\'", '\"'))

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "HouseRepayDetail"))
    def test_HouseRepayDetail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "HouseRepayAnalysis"))
    def test_HouseRepayAnalysis(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "CityRepayDetail"))
    def test_CityRepayDetail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "CityRepayAnalysis"))
    def test_CityRepayAnalysis(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "RepayList"))
    def test_RepayList(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "RepayStatistics"))
    def test_RepayStatistics(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "RepayWard"))
    def test_RepayWard(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "getPenalty"))
    def test_getPenalty(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "PenaltyStatistics"))
    def test_PenaltyStatistics(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "AmountFunnelReport"))
    def test_AmountFunnelReport(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "OrderFunnelReport"))
    def test_OrderFunnelReport(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "ReleaseRepayAmount"))
    def test_ReleaseRepayAmount(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "CityRankRelease"))
    def test_CityRankRelease(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "OverdueRepayAmount"))
    def test_OverdueRepayAmount(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "CityRankOverdue"))
    def test_CityRankOverdue(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "AgentReport"))
    def test_AgentReport(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "NewFactoringAgent"))
    def test_NewFactoringAgent(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "ChannelReport"))
    def test_ChannelReport(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)

    @ddt.data(*a.get_data_by_api(fieldname, "MerchantReport"))
    def test_MerchantReport(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=self.cookies)
Example #25
0
class StoreManageTest(RunTest):
    """门店模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-4:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @unittest.SkipTest
    @ddt.data(*a.get_data_by_api(fieldname, "ResponsibilityStore"))
    def test_ResponsibilityStore(self, value):
        """责任田分类分级"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["cookies_str"] = ";".join(
            ['{}={}'.format(*_) for _ in sss["cookies"].items()])
        sss["cityId_list_str"] = ','.join(
            list(map(lambda x: str(x), sss["city_list"])))
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

    @ddt.data(*a.get_data_by_api(fieldname, "ResponsibilityStoreList"))
    def test_ResponsibilityStoreList(self, value):
        """门店列表筛选"""
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # 调用接口发起请求
        sss["UserId"] = f'userId={sss["ID"]}'
        sss["baishan_id"] = sss["city_list"][0]
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
Example #26
0
class LoginTest(RunTest):
    """登录模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-7:]
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "Login"))
    def test_Login(self, value):
        if sss["env"] == "prod":
            sss["sms_code"] = get_smsCode(
                "prod",
                'https://jr.fangdd.com/jgj/api/user/smgsend',
                'post',
                json={
                    "mobile": "13058019302",
                    "type": 1
                })
        elif sss["env"] == "pre":
            sss["sms_code"] = get_smsCode(
                "pre",
                'https://jr.fangdd.com.cn/jgj/api/user/smgsend',
                'post',
                json={
                    "mobile": "18652980686",
                    "type": 1
                })
        elif sss["env"] == "test":
            sss["sms_code"] = get_smsCode(
                "test",
                'https://jr.fangdd.net/jgj/api/user/smgsend',
                'post',
                json={
                    "mobile": "13682521706",
                    "type": 1
                })
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        print("sss等于", sss)
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["syb"][env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)
        sss["cookies3"] = requests.utils.dict_from_cookiejar(
            self.result.cookies)
        print(sss)

    @ddt.data(*a.get_data_by_api(fieldname, "Mchecklist"))
    def test_Mchecklist(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()["syb"][env] + uri
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies3"])

    @ddt.data(*a.get_data_by_api(fieldname, "Nfactoring"))
    def test_Nfactoring(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()["syb"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies3"],
                                 verify=False)
        time.sleep(3)

    @ddt.data(*a.get_data_by_api(fieldname, "Ngfactoring"))
    def test_Ngfactoring(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()["syb"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies3"],
                                 verify=False)

    time.sleep(10)

    @ddt.data(*a.get_data_by_api(fieldname, "Oacheckcommiss"))
    def test_Oacheckcommiss(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()["commiss"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Ochangechanel"))
    def test_Ochangechanel(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()["syb"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies3"],
                                 verify=False)

    @ddt.data(*a.get_data_by_api(fieldname, "Odcheckfactoring"))
    def test_Odcheckfactoring(self, value):
        self.desc = value[self.desc_num]
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数

        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()["commiss"][env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 cookies=sss["cookies"],
                                 verify=False)
Example #27
0
class LoginTest(RunTest):
    """登录模块"""

    # 通过文件夹路径获取project参数的值
    project = os.path.dirname(__file__)[-9:]
    # print(project)
    # 读取文件实例化
    a = ReadData(project, project)
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    # 获取项目名后,获取机器人相关配置
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "ByPassword"))  #接口对应的名称
    def test_ByPassword(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        url = self.a.get_domains()[env] + self.a.get_apiPath(
            self.fieldname, self.apiName)
        # 调用接口发起请求
        self.result = self.start(self.project, self.isSkip_num,
                                 self.apiName_num, url, self.method_num,
                                 self.headers_num, self.para_num,
                                 self.data_num, self.desc_num,
                                 self.relateData_num, self.expect_num, value)

        sss["ID"] = str(sss["ID"])
        sss["ID2"] = str(sss["ID2"])
        sss["ID3"] = str(sss["ID3"])
        sss["ID5"] = str(sss["ID5"])
Example #28
0
class StoreTest(RunTest):
	"""业务订单风控模块"""
	
	# 通过文件名夹获取project参数的值
	project = os.path.dirname(__file__)[-4:]
	# 读取文件实例化
	a = ReadData(project, project)
	# 通过类名获取fieldname的值
	fieldname = sys._getframe().f_code.co_name[:-4]
	# 获取项目名后,获取机器人相关配置
	json_dict = a.json_data[project]["robot_data"]
	robot_url = json_dict["robot_url"]
	mobile = json_dict["mobile"]
	
	@classmethod
	def setUpClass(cls):
		cls.env_num = cls.a.get_num_name("环境")
		cls.apiName_num = cls.a.get_num_name("接口名称")
		cls.method_num = cls.a.get_num_name("请求方法")
		cls.headers_num = cls.a.get_num_name("请求头")
		cls.para_num = cls.a.get_num_name("请求参数")
		cls.desc_num = cls.a.get_num_name("用例描述")
		cls.data_num = cls.a.get_num_name("请求体")
		cls.expect_num = cls.a.get_num_name("预期结果")
		cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
		cls.relateData_num = cls.a.get_num_name("接口关联参数")
		cls.cookies = json.loads(read_cookie.readcookie().replace("\'", '\"'))

	def setUp(self):
		globals()['count'] += 1
		self.logger.debug("...start %s case %s...".center(80, '#') % (self.fieldname, count))
	
	def tearDown(self):
		if self.result and type(self.result) != str:
			try:
				self.assertEqual(True, checkOut(self.res, self.expect))
				self.logger.debug("测试结果         :测试通过!")
			except Exception as err:
				self.logger.error("测试结果         :测试失败!")
				send_ding(self.robot_url, self.mobile,
				          content=f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}",runType=1)
				raise err
		elif self.result and type(self.result) == str:
			send_ding(self.robot_url, self.mobile, content=f"{self.desc}测试失败!\n测试反馈:{self.result}",runType=1)
			raise Exception
		self.logger.debug("...end %s case %s...".center(80, '#') % (self.fieldname, count))

	@ddt.data(*a.get_data_by_api(fieldname, "EnterpriseAuditList"))
	def test_EnterpriseAuditList(self, value):
		# 通过函数名获取apiName参数的值
		self.apiName = (inspect.stack()[0][3])[5:]
		# 获取测试环境参数
		env = value[self.env_num]
		# 通过环境参数获得接口url
		uri = self.a.get_apiPath(self.fieldname, self.apiName)
		url = self.a.get_domains()[env] + uri
		# 调用接口发起请求
		self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num, self.para_num,
						self.data_num, self.desc_num, self.relateData_num, self.expect_num, value, cookies=self.cookies)

	@ddt.data(*a.get_data_by_api(fieldname, "EnterpriseInfo"))
	def test_EnterpriseInfo(self, value):
		# 通过函数名获取apiName参数的值
		self.apiName = (inspect.stack()[0][3])[5:]
		# 获取测试环境参数
		env = value[self.env_num]
		# 通过环境参数获得接口url
		uri = self.a.get_apiPath(self.fieldname, self.apiName)
		url = self.a.get_domains()[env] + uri
		# 调用接口发起请求
		self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num, self.para_num,
						self.data_num, self.desc_num, self.relateData_num, self.expect_num, value,
						cookies=self.cookies)

	@ddt.data(*a.get_data_by_api(fieldname, "Operator"))
	def test_Operator(self, value):
		# 通过函数名获取apiName参数的值
		self.apiName = (inspect.stack()[0][3])[5:]
		# 获取测试环境参数
		env = value[self.env_num]
		# 通过环境参数获得接口url
		uri = self.a.get_apiPath(self.fieldname, self.apiName)
		url = self.a.get_domains()[env] + uri
		# 调用接口发起请求
		self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
								 self.headers_num, self.para_num,
								 self.data_num, self.desc_num, self.relateData_num, self.expect_num, value,
								 cookies=self.cookies)

	@ddt.data(*a.get_data_by_api(fieldname, "BankList"))
	def test_BankList(self, value):
		# 通过函数名获取apiName参数的值
		self.apiName = (inspect.stack()[0][3])[5:]
		# 获取测试环境参数
		env = value[self.env_num]
		# 通过环境参数获得接口url
		uri = self.a.get_apiPath(self.fieldname, self.apiName)
		url = self.a.get_domains()[env] + uri
		# 调用接口发起请求
		self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
								 self.headers_num, self.para_num,
								 self.data_num, self.desc_num, self.relateData_num, self.expect_num, value,
								 cookies=self.cookies)

	@ddt.data(*a.get_data_by_api(fieldname, "EnterpriseLog"))
	def test_EnterpriseLog(self, value):
		# 通过函数名获取apiName参数的值
		self.apiName = (inspect.stack()[0][3])[5:]
		# 获取测试环境参数
		env = value[self.env_num]
		# 通过环境参数获得接口url
		uri = self.a.get_apiPath(self.fieldname, self.apiName)
		url = self.a.get_domains()[env] + uri
		# 调用接口发起请求
		self.result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num,
								 self.headers_num, self.para_num,
								 self.data_num, self.desc_num, self.relateData_num, self.expect_num, value,
								 cookies=self.cookies)
Example #29
0
class DynamicTest(RunTest):
    """动态相关用例"""

    project = os.path.dirname(__file__)[-7:]
    a = ReadData(project, project)
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    def tearDown(self):
        if self.result and type(self.result) != str:
            try:
                self.assertEqual(True, checkOut(self.res, self.expect))
                self.logger.debug("测试结果         :测试通过!")
            except Exception as err:
                print(sss["env"])
                self.logger.error("测试结果         :测试失败!")
                send_ding(
                    self.robot_url,
                    self.mobile,
                    content=
                    f"{self.desc}测试失败!\n接口返回为:{self.res}, 预期结果为:{self.expect}")
                raise err
        elif self.result and type(self.result) == str:
            send_ding(self.robot_url,
                      self.mobile,
                      content=f"{self.desc}测试失败!\n测试反馈:{self.result}")
            raise Exception
        self.logger.debug("...end %s case %s...".center(80, '#') %
                          (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "Add"))
    def test1_Add(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "List"))
    def test2_List(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)
        sss["id"] = self.res['data']['pageData'][0]['id']

    @ddt.data(*a.get_data_by_api(fieldname, "Edit"))
    def test3_Edit(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "Zan"))
    def test4_Zan(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "Comment"))
    def test5_Comment(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "Delete"))
    def test6_Delete(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName) + str(
            sss["id"]) + "/del"
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "Share"))
    def test7_Share(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        res = self.start(self.project,
                         self.isSkip_num,
                         self.apiName_num,
                         url,
                         self.method_num,
                         self.headers_num,
                         self.para_num,
                         self.data_num,
                         self.desc_num,
                         self.relateData_num,
                         self.expect_num,
                         value,
                         verify=False,
                         timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "Detail"))
    def test8_Detail(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)

    @ddt.data(*a.get_data_by_api(fieldname, "UserInfo"))
    def test9_UserInfo(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[6:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [
            str(sss["userId"]), sss["token"], self.timestamp,
            value[self.method_num].upper(), uri
        ]
        value.append(str_sign_list)
        # 调用接口发起请求
        self.result = self.start(self.project,
                                 self.isSkip_num,
                                 self.apiName_num,
                                 url,
                                 self.method_num,
                                 self.headers_num,
                                 self.para_num,
                                 self.data_num,
                                 self.desc_num,
                                 self.relateData_num,
                                 self.expect_num,
                                 value,
                                 verify=False,
                                 timeout=10)
Example #30
0
class LoginTest(RunTest):
    """登录模块"""

    # 通过文件名夹获取project参数的值
    project = os.path.dirname(__file__)[-11:]
    # 读取文件实例化
    a = ReadData(project, 'miniprogram')
    # 通过类名获取fieldname的值
    fieldname = sys._getframe().f_code.co_name[:-4]
    json_dict = a.json_data[project]["robot_data"]
    robot_url = json_dict["robot_url"]
    mobile = json_dict["mobile"]

    @classmethod
    def setUpClass(cls):
        cls.env_num = cls.a.get_num_name("环境")
        cls.apiName_num = cls.a.get_num_name("接口名称")
        cls.method_num = cls.a.get_num_name("请求方法")
        cls.headers_num = cls.a.get_num_name("请求头")
        cls.para_num = cls.a.get_num_name("请求参数")
        cls.desc_num = cls.a.get_num_name("用例描述")
        cls.data_num = cls.a.get_num_name("请求体")
        cls.expect_num = cls.a.get_num_name("预期结果")
        cls.isSkip_num = cls.a.get_num_name("是否跳过该用例")
        cls.relateData_num = cls.a.get_num_name("接口关联参数")
        t = time.time()
        cls.timestamp = str(round(t * 1000))
        sss["timestamp"] = cls.timestamp

    def setUp(self):
        globals()['count'] += 1
        self.logger.debug("...start %s case %s...".center(80, '#') % (self.fieldname, count))

    def tearDown(self):
        self.logger.debug("...end %s case %s...".center(80, '#') % (self.fieldname, count))

    @ddt.data(*a.get_data_by_api(fieldname, "ByPassword"))
    def test_ByPassword(self, value):
        # 通过函数名获取apiName参数的值
        self.apiName = (inspect.stack()[0][3])[5:]
        # 获取测试环境参数
        env = value[self.env_num]
        # 通过环境参数获得接口url
        uri = self.a.get_apiPath(self.fieldname, self.apiName)
        url = self.a.get_domains()[env] + uri
        # ***需要加密的数据在此处添加到列表中即可,反之则不用写这一步***
        str_sign_list = [self.timestamp, value[self.method_num].upper(), uri]
        value.append(str_sign_list)
        # 调起请求
        result = self.start(self.project, self.isSkip_num, self.apiName_num, url, self.method_num, self.headers_num, self.para_num,
                            self.data_num, self.desc_num, self.relateData_num, self.expect_num, value, verify=False)

        try:
            self.assertEqual(True, checkOut(self.res, self.expect))
            self.logger.info("测试结果         :测试通过!")
            sss["userId"] = str(sss["userId"])
        except Exception as err:
            self.logger.error("测试结果         :测试失败!")
            json_dict = self.a.json_data[self.project]["robot_data"]
            robot_url = json_dict["robot_url"]
            mobile = json_dict["mobile"]
            send_ding(robot_url, mobile, content=f"测试失败!!!接口返回为:{result}, 接口预期结果为:{self.expect}")
            raise err