Ejemplo n.º 1
0
    def __init__(self,
                 testset,
                 variables_mapping=None,
                 http_client_session=None):
        super(TestSuite, self).__init__()

        self.config_dict = testset.get("config", {})

        variables = self.config_dict.get("variables", [])
        variables_mapping = variables_mapping or {}
        self.config_dict["variables"] = utils.override_variables_binds(
            variables, variables_mapping)

        parameters = self.config_dict.get("parameters", [])
        cartesian_product_parameters = testcase.parse_parameters(
            parameters, self.config_dict["path"]) or [{}]
        for parameter_mapping in cartesian_product_parameters:
            if parameter_mapping:
                self.config_dict["variables"] = utils.override_variables_binds(
                    self.config_dict["variables"], parameter_mapping)

            self.test_runner = runner.Runner(self.config_dict,
                                             http_client_session)
            testcases = testset.get("testcases", [])
            self._add_tests_to_suite(testcases)
Ejemplo n.º 2
0
 def test_parse_parameters_raw_list(self):
     parameters = [
         {"user_agent": ["iOS/10.1", "iOS/10.2", "iOS/10.3"]},
         {"username-password": [("user1", "111111"), ("test2", "222222")]}
     ]
     cartesian_product_parameters = testcase.parse_parameters(parameters)
     self.assertEqual(
         len(cartesian_product_parameters),
         3 * 2
     )
Ejemplo n.º 3
0
 def test_parse_parameters_custom_function(self):
     parameters = [{
         "app_version": "${gen_app_version()}"
     }, {
         "username-password": "******"
     }]
     testset_path = os.path.join(os.getcwd(),
                                 "tests/data/demo_parameters.yml")
     cartesian_product_parameters = testcase.parse_parameters(
         parameters, testset_path)
     self.assertEqual(len(cartesian_product_parameters), 2 * 2)
Ejemplo n.º 4
0
 def test_parse_parameters_parameterize(self):
     parameters = [{
         "app_version": "${parameterize(app_version.csv)}"
     }, {
         "username-password": "******"
     }]
     testset_path = os.path.join(os.getcwd(),
                                 "tests/data/demo_parameters.yml")
     cartesian_product_parameters = testcase.parse_parameters(
         parameters, testset_path)
     self.assertEqual(len(cartesian_product_parameters), 2 * 3)
Ejemplo n.º 5
0
 def test_parse_parameters_mix(self):
     parameters = [{
         "user_agent": ["iOS/10.1", "iOS/10.2", "iOS/10.3"]
     }, {
         "app_version": "${gen_app_version()}"
     }, {
         "username-password": "******"
     }]
     testset_path = os.path.join(os.getcwd(),
                                 "tests/data/demo_parameters.yml")
     cartesian_product_parameters = testcase.parse_parameters(
         parameters, testset_path)
     self.assertEqual(len(cartesian_product_parameters), 3 * 2 * 3)
Ejemplo n.º 6
0
 def test_parse_parameters_raw_list(self):
     parameters = [{
         "user_agent": ["iOS/10.1", "iOS/10.2", "iOS/10.3"]
     }, {
         "username-password": [("user1", "111111"), ["test2", "222222"]]
     }]
     cartesian_product_parameters = testcase.parse_parameters(parameters)
     self.assertEqual(len(cartesian_product_parameters), 3 * 2)
     self.assertEqual(cartesian_product_parameters[0], {
         'user_agent': 'iOS/10.1',
         'username': '******',
         'password': '******'
     })
Ejemplo n.º 7
0
 def test_parse_parameters_raw_list(self):
     parameters = [
         {"user_agent": ["iOS/10.1", "iOS/10.2", "iOS/10.3"]},
         {"username-password": [("user1", "111111"), ["test2", "222222"]]}
     ]
     cartesian_product_parameters = testcase.parse_parameters(parameters)
     self.assertEqual(
         len(cartesian_product_parameters),
         3 * 2
     )
     self.assertEqual(
         cartesian_product_parameters[0],
         {'user_agent': 'iOS/10.1', 'username': '******', 'password': '******'}
     )
Ejemplo n.º 8
0
    def _get_parametered_variables(self, variables, parameters):
        """ parameterize varaibles with parameters
        """
        cartesian_product_parameters = testcase.parse_parameters(
            parameters, self.testset_file_path) or [{}]

        parametered_variables_list = []
        for parameter_mapping in cartesian_product_parameters:
            parameter_mapping = parameter_mapping or {}
            variables = utils.override_variables_binds(variables,
                                                       parameter_mapping)

            parametered_variables_list.append(variables)

        return parametered_variables_list
Ejemplo n.º 9
0
 def test_parse_parameters_custom_function(self):
     parameters = [
         {"app_version": "${gen_app_version()}"},
         {"username-password": "******"}
     ]
     testset_path = os.path.join(
         os.getcwd(),
         "tests/data/demo_parameters.yml"
     )
     cartesian_product_parameters = testcase.parse_parameters(
         parameters,
         testset_path
     )
     self.assertEqual(
         len(cartesian_product_parameters),
         2 * 2
     )
Ejemplo n.º 10
0
 def test_parse_parameters_parameterize(self):
     parameters = [
         {"app_version": "${parameterize(app_version.csv)}"},
         {"username-password": "******"}
     ]
     testset_path = os.path.join(
         os.getcwd(),
         "tests/data/demo_parameters.yml"
     )
     cartesian_product_parameters = testcase.parse_parameters(
         parameters,
         testset_path
     )
     self.assertEqual(
         len(cartesian_product_parameters),
         2 * 3
     )
Ejemplo n.º 11
0
 def test_parse_parameters_mix(self):
     parameters = [
         {"user_agent": ["iOS/10.1", "iOS/10.2", "iOS/10.3"]},
         {"app_version": "${gen_app_version()}"},
         {"username-password": "******"}
     ]
     testset_path = os.path.join(
         os.getcwd(),
         "tests/data/demo_parameters.yml"
     )
     cartesian_product_parameters = testcase.parse_parameters(
         parameters,
         testset_path
     )
     self.assertEqual(
         len(cartesian_product_parameters),
         3 * 2 * 3
     )
Ejemplo n.º 12
0
    def _get_parametered_variables(self, variables, parameters):
        """ parameterize varaibles with parameters
        """
        cartesian_product_parameters = testcase.parse_parameters(
            parameters,
            self.testset_file_path
        ) or [{}]

        parametered_variables_list = []
        for parameter_mapping in cartesian_product_parameters:
            parameter_mapping = parameter_mapping or {}
            variables = utils.override_variables_binds(
                variables,
                parameter_mapping
            )

            parametered_variables_list.append(variables)

        return parametered_variables_list
Ejemplo n.º 13
0
    def _get_parametered_variables(self,
                                   variables,
                                   parameters,
                                   parser_handle=None):
        """ parameterize varaibles with parameters
        """
        cartesian_product_parameters = testcase.parse_parameters(
            parameters,
            self.testset_file_path,
            parser_handle  #modified by zhengchun, 解析动态加载函数
        ) or [{}]

        parametered_variables_list = []
        for parameter_mapping in cartesian_product_parameters:
            parameter_mapping = parameter_mapping or {}
            variables = utils.override_variables_binds(variables,
                                                       parameter_mapping)

            parametered_variables_list.append(variables)

        return parametered_variables_list