class QueryBrokerOrderPageList(unittest.TestCase):
    def setUp(self):
        self.filename = Request().dirname() + "/Document/Wechat_Applet/queryBrokerOrderPageList.json"

        self.filecontent = FileContent(self.filename)
        self.apiname = self.filecontent.get_apiname()  # 获取apiname用于获得url
        self.api = self.filecontent.get_api()  # 获取api用于校验
        self.caselist = self.filecontent.get_caselist()  # 获取caselist列表,包括"reqParams"和"expectResult"
        # self.casenumber = self.filecontent.get_casenumber()       # 获取case数量

        self.verify = Verify()
        self.verificationErrors = []

    def get_response(self, serial):
        """

        :param serial:
        :return: 获取接口返回
        """
        url = Request().get_url(serial=serial, filename=self.filename, apiname=self.apiname)
        session = requests.session()
        response = session.post(url)
        if response.status_code == 200:
            return response
        else:
            raise ConnectionRefusedError()

    def verify_datalist_number(self, serial, result):
        """
        校验dataList列表长度,小于等于pagesize,即每次请求最多为pagesize规定的数值,默认为15
        :return: 
        """
        pagesize_parama = self.filecontent.get_reqparams(serial)['queryRequest']['pagesize']
        datalist = result['data']['dataList']
        len_datalist = len(datalist)
        self.assertTrue(len_datalist <= pagesize_parama,
                        msg="len_datalist: {}, pagesize: {}".format(len_datalist, pagesize_parama))

    def verify_status(self, serial, result):
        """
        校验status为当前查询列表的status
        :param serial: 
        :param result: 
        :return: 
        """
        expect_status = self.filecontent.get_datalist(serial)[0]['status']
        result_datalist = result['data']['dataList']
        for i in range(len(result_datalist)):
            self.assertEqual(expect_status, result_datalist[i]['status'])

    def test_to_pay(self):
        """
        待车商支付订单列表
        校验点:1、校验datalist列表长度<=pagesize的值
               2、校验datalist所有订单的status=0
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {1: "待车商支付订单列表"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key-1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key-1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key-1)))
            else:
                raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key-1))
            sql_data = self.filecontent.get_sqldata(serial=key-1)
            if SqlOperation().select_data(sql_data['select']) != 0:
                SqlOperation().delete_data(sql_data['delete'])
            SqlOperation().insert_data(sql_data['insert'])
            response = self.get_response(serial=key-1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key-1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)
            print("message verify is success.")

            self.verify_datalist_number(serial=key - 1, result=json_result)
            self.verify_status(serial=key-1, result=json_result)

            print("ALL END!!")

    def test_broker_to_confirm(self):
        """
        待经纪人确认订单列表
        校验点:1、校验datalist列表长度<=pagesize的值
               2、校验datalist所有订单的status=1
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {2: "待经纪人确认订单列表"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1))
            sql_data = self.filecontent.get_sqldata(serial=key - 1)
            if SqlOperation().select_data(sql_data['select']) != 0:
                SqlOperation().delete_data(sql_data['delete'])
            SqlOperation().insert_data(sql_data['insert'])
            response = self.get_response(serial=key - 1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)
            print("message verify is success.")

            self.verify_datalist_number(serial=key - 1, result=json_result)
            self.verify_status(serial=key - 1, result=json_result)

            print("ALL END!!")

    def test_customer_to_confirm(self):
        """
        待车商确认订单列表
        校验点:1、校验datalist列表长度<=pagesize的值
               2、校验datalist所有订单的status=2
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {3: "待车商确认订单列表"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1))
            sql_data = self.filecontent.get_sqldata(serial=key - 1)
            if SqlOperation().select_data(sql_data['select']) is not None:
                SqlOperation().delete_data(sql_data['delete'])
            SqlOperation().insert_data(sql_data['insert'])
            response = self.get_response(serial=key - 1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)
            print("message verify is success.")

            self.verify_datalist_number(serial=key - 1, result=json_result)
            self.verify_status(serial=key - 1, result=json_result)

            print("ALL END!!")

    def test_paid_success(self):
        """
        交易成功订单列表
        校验点:1、校验datalist列表长度<=pagesize的值;
               2、校验datalist所有订单的status=3
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {4: "交易成功订单列表"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key-1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key-1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key-1)))
            else:
                raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key-1))
            response = self.get_response(serial=key-1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key-1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)
            print("message verify is success.")

            self.verify_datalist_number(serial=key - 1, result=json_result)
            self.verify_status(serial=key-1, result=json_result)

            print("ALL END!!")

    def test_paid_fail(self):
        """
        交易失败订单列表
        校验点:1、校验datalist列表长度<=pagesize的值
               2、校验datalist所有订单的status=3
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {5: "交易失败订单列表"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1))
            response = self.get_response(serial=key - 1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)
            print("message verify is success.")

            self.verify_datalist_number(serial=key - 1, result=json_result)
            self.verify_status(serial=key - 1, result=json_result)

            print("ALL END!!")

    def test_all_list(self):
        """
        全部订单列表
        校验点:1、校验datalist列表长度<=pagesize的值
               2、datalist不为空
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {6: "全部订单列表"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1))
            response = self.get_response(serial=key - 1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)
            print("message verify is success.")

            self.verify_datalist_number(serial=key-1, result=json_result)
            self.verify.verify_data_isNotNull(result=json_result)

            print("ALL END!!")

    def tearDown(self):
        SqlOperation().close()
Beispiel #2
0
class GetQuoteDetail(unittest.TestCase):

    def setUp(self):
        self.filename = Request().dirname() + "/Document/B_Client/getQuoteDetail.json"

        self.filecontent = FileContent(filename=self.filename)
        self.apiname = self.filecontent.get_apiname()
        self.caselist = self.filecontent.get_caselist()

        self.verify = Verify()
        # self.casenumber = self.filecontent.get_casenumber()

    def get_response(self, serial):
        url = Request().get_url(serial=serial, filename=self.filename, apiname=self.apiname)
        response = requests.post(url=url)
        if response.status_code == 200:
            return response
        else:
            raise ConnectionRefusedError()

    def verify_status(self, serial, result):
        """
        校验返回结果的status == auto.company_quote.status
        :param result
        :return: 
        """
        expect_status = self.filecontent.get_expectresult(serial)['status']
        result_status = result['data']['status']
        self.assertEqual(expect_status, result_status, msg="expect_status != result_status.")

    def test_offering(self):
        """
        报价中状态查询成功
        校验点:1、message:返回值 查询成功
               2、data不为空
               3、status=1
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {1: "报价中状态查询成功"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key))

            # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态
            sql = self.filecontent.get_sqldata(serial=key - 1)
            for sql_update in sql['update']:
                SqlOperation().update_data(sql_update)

            response = self.get_response(serial=key - 1)
            self.verify.verify_code_200(response=response)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)

            self.verify.verify_data_isNotNull(result=json_result)
            self.verify_status(serial=key - 1, result=json_result)

            print("ALL END!!")

    def test_offer_expired(self):
        """
        报价已过期状态查询成功
        校验点:1、message:返回值 查询成功
               2、data不为空
               3、status=2
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {2: "报价已过期状态查询成功"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key))

            # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态
            sql = self.filecontent.get_sqldata(serial=key - 1)
            for sql_update in sql['update']:
                SqlOperation().update_data(sql_update)

            response = self.get_response(serial=key - 1)
            self.verify.verify_code_200(response=response)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)

            self.verify.verify_data_isNotNull(result=json_result)
            self.verify_status(serial=key-1, result=json_result)

            print("ALL END!!")

    def test_offer_withdraw(self):
        """
        报价已撤回状态查询成功
        校验点:1、message:返回值 查询成功
               2、data不为空
               3、status=3
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {3: "报价已撤回状态查询成功"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key))

            # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态
            sql = self.filecontent.get_sqldata(serial=key - 1)
            for sql_update in sql['update']:
                SqlOperation().update_data(sql_update)

            response = self.get_response(serial=key - 1)
            self.verify.verify_code_200(response=response)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)

            self.verify.verify_data_isNotNull(result=json_result)
            self.verify_status(serial=key-1, result=json_result)

            print("ALL END!!")

    def test_offer_failure(self):
        """
        报价已失效   状态查询成功
        校验点:1、message:返回值 查询成功
               2、data不为空
               3、status=4
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {4: "报价已失效状态查询成功"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key))

            # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态
            sql = self.filecontent.get_sqldata(serial=key - 1)
            for sql_update in sql['update']:
                SqlOperation().update_data(sql_update)

            response = self.get_response(serial=key - 1)
            self.verify.verify_code_200(response=response)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult, result=json_result)

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult, result=json_result)

            self.verify.verify_data_isNotNull(result=json_result)
            self.verify_status(serial=key-1, result=json_result)

            print("ALL END!!")

    def tearDown(self):
        SqlOperation().close()
Beispiel #3
0
class GetCarSourceAllByEs(unittest.TestCase):
    def setUp(self):
        self.filename = Request().dirname(
        ) + "/Document/Wechat_Applet/getCarSourceAllByEs.json"

        self.filecontent = FileContent(self.filename)
        self.apiname = self.filecontent.get_apiname()  # 获取apiname用于获得url
        self.api = self.filecontent.get_api()  # 获取api用于校验
        self.caselist = self.filecontent.get_caselist(
        )  # 获取caselist列表,包括"reqParams"和"expectResult"

        self.verify = Verify()
        # self.result = GlobalVar().global_dic
        self.verificationErrors = []

    def get_response(self, serial):
        """

        :param serial:
        :return: 获取接口返回
        """
        url = Request().get_url(serial=serial,
                                filename=self.filename,
                                apiname=self.apiname)
        session = requests.session()
        response = session.post(url, timeout=1)
        if response.status_code == 200:
            return response
        else:
            raise ConnectionRefusedError("request is refused.")

    def verify_data_number(self, serial, result):
        """
        校验data列表长度,小于等于pagesize,即每次请求最多为pagesize规定的数值,默认为15
        :return: 
        """
        pagesize_parama = self.filecontent.get_reqparams(serial)['pageSize']
        data = result['data']
        len_data = len(data)
        self.assertTrue(len_data <= pagesize_parama,
                        msg="len_datalist: {}, pagesize: {}".format(
                            len_data, pagesize_parama))

    def test_get_success(self):
        """
        查询车源列表成功
        校验点:1、message:返回值 查询车源列表成功
               2、data列表不为空
               3、data长度<=pageSize,pageSize为请求参数传入的值
        :return: 
        """
        # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错
        casenum = {1: "查询车源列表成功"}
        for key, value in casenum.items():
            print(value, self.filecontent.get_instruction(serial=key - 1))
            if operator.eq(value,
                           self.filecontent.get_instruction(serial=key - 1)):
                print("TestCase {}: {}".format(
                    key, self.filecontent.get_instruction(serial=key - 1)))
            else:
                raise ValueError(
                    "用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum."
                    .format(key))
            response = self.get_response(serial=key - 1)
            json_result = response.json()
            print("response content: ", json_result)
            expectresult = self.filecontent.get_expectresult(serial=key - 1)

            print("code verify is beginning...")
            self.verify.verify_code(expectresult=expectresult,
                                    result=json_result)
            print("code verify is success.")

            print("message verify is beginning...")
            self.verify.verify_message(expectresult=expectresult,
                                       result=json_result)
            print("message verify is success.")

            print("data verify is beginning...")
            self.verify.verify_data_isNotNull(result=json_result)
            print("data verify is success.")

            self.verify_data_number(serial=key - 1, result=json_result)

            print("ALL END!!")

    def tearDown(self):
        pass