def start_suite(self, suite, result):

        # Сохраняем значение переданное в аргументах, для параллельного запуска, в переменную self.type_sites.
        if self.args.find("parallel") != -1:
            self.type_sites = "parallel"

        # Формируем общий список сайтов для параллельного прогона. Настраиваем его функционал.
        # Список может быть динамический, если пришел аргумент 'parallel' или статический, если пришел аргумент 'vse'.
        if self.type_sites == 'parallel' or self.type_sites == 'vse':

            # Получаем кол-во динамических сайтов для параллельного прогона.
            if self.type_sites == 'parallel':
                parametrs = self.args.split(':')
                number_sites = int(parametrs[1])
                self.sites = get_sites_list_from_doorway(number_sites)

            # Получаем номер тест сьюта из названия
            result = re.findall(r'\d+', suite.name)
            if not result:
                return
            test_suite_number = int(result[0])

            # Вызываем функцию возвращающую динамический список сайтов, по указанному кол-ву.
            site_list = get_sites_list_from_doorway(number_sites)

            # Берем из полученного списка сайтов, равную часть, с позиции, равной номеру тестсьюта
            count = len(site_list) // 10
            self.sites = site_list[test_suite_number *
                                   count:test_suite_number * count + count]

        # Сохраняем полученный список сайтов, в переменную sites.
        sites = self.sites

        # Создаем объект TestCase, в него будет записывать TestCase, parent - текущий TestSuite
        test_cases = TestCases(parent=suite)

        for site_url in sites:
            # Получаем переменные с описанием теста и текстом для тегов теста.
            test_name = BuiltIn().get_variable_value('${test_name}')
            test_tags = BuiltIn().get_variable_value('${test_tags}')

            # Создаем Keyword и записываем в список Keywords
            if test_name is None:
                pass
            else:
                ks = Keywords()
                ks.append(Keyword(name='Test run', args=(site_url, )))

                # Создаем TestCase с полученным именем теста и текстом для тегов теста. И добавляем к нему созданный Keyword.
                test_case = TestCase(name=f'Test {test_name} on {site_url}',
                                     tags=f'{test_tags}')
                test_case.keywords = ks

                # Добавляем TestCase к TestCases
                test_cases.append(test_case)

        # Добавлем созданный список TestCases к текущему TestSuite
        suite.tests.extend(test_cases)
Beispiel #2
0
    def start_suite(self, suite, result):
        """
        Генерируем тест кейсы. Для каждого сайта отдельный тест кейс, который запустит нужный кейворд с параметроми
        Создаем объект TestCases и наполняем его TestCase, в котором задаем нужный Keyword
        """
        site_list = ['https://arena.com', 'https://luzhniki.com',
                       'https://theatreallascala.com', 'https://crocus-city.me', 'https://bdt.com']
        # Создаем объект TestCase, в него будет записывать TestCase, parent - текущий TestSuite
        test_cases = TestCases(parent=suite)
        for site_url in site_list:
            site_host = site_url.split('//')

            # Получаем переменные с описанием теста и текстом для тегов теста.
            test_name = BuiltIn().get_variable_value('${test_name}')
            test_tags = BuiltIn().get_variable_value('${test_tags}')

            def switch_keyword(argument):
                switcher = {
                    "arena.com": "билеты в Арена",
                    "luzhniki.com": "Билеты на стадион «Лужники»",
                    "theatreallascala.com": "Билеты в Teatro alla Scala",
                    "crocus-city.me": "https://crocus-city.me",
                    "bdt.com": "https://bdt.com"
                }
                return switcher.get(argument, "Invalid host")

            if test_name is None:
                pass
            else:
                # Создаем Keyword и записываем в список Keywords
                ks = Keywords()
                ks.append(Keyword(name='Test run', args=(switch_keyword(site_host[1]), site_url)))

                # Создаем TestCase с нужным именем и добавлеям к нему созданный Keyword
                test_case = TestCase(name=f'{test_name} {urlparse(site_url).hostname} из рекламы в поиске',
                                     tags=f'{test_tags}')
                test_case.keywords = ks

                # Добавляем TestCase к TestCases
                test_cases.append(test_case)

                print(test_cases)

        # Добавляем созданный список TestCases к текущему TestSuite
        suite.tests.extend(test_cases)
Beispiel #3
0
    def start_suite(self, suite, result):

        # Создаем переменную с общим паролем, для всех аккаунтов. Передаем ее в кейворд проверяющий логин в бинтранете, по разным ролям.
        BuiltIn().set_suite_variable("${password_for_all_accaunts}",
                                     "your_password")
        # Создаем переменную для разделения типов теста по проверке авторизации. Общая проверка или отдельная по разным ролям.
        BuiltIn().set_suite_variable("${type_check}", f'{self.type_check}')

        # Если в аргументах запуска было передано название роли отличное от 'common', то создам необходимые переменные, для данного типа теста.
        if self.accaunt != 'common':
            # Создаем переменную с название роли, для авторизации. Переданную в аргументах запуска.
            BuiltIn().set_suite_variable("${user_name}", f'{self.accaunt}')
            # Создаем переменную с текстом, для проверки по каждой из ролей.
            BuiltIn().set_suite_variable("${text_accaunt_value}",
                                         f'{self.text_accaunt}')

        site_url = "http://site.com/accounts/login/?next=/dev/"

        if 'Test Authorization' in suite.name:
            # Создаем объект TestCase, в него будет записывать TestCase, parent - текущий TestSuite
            test_cases = TestCases(parent=suite)

        # Получаем переменные с описанием теста и текстом для тегов теста.
        test_name = BuiltIn().get_variable_value('${test_name}')
        test_tags = BuiltIn().get_variable_value('${test_tags}')

        if 'Test Authorization' in suite.name:
            # Создаем Keyword и записываем в список Keywords
            if test_name is None:
                pass
            else:
                ks = Keywords()
                ks.append(Keyword(name='Test run', args=(site_url, )))

                # Создаем TestCase с полученным именем теста и текстом для тегов теста. И добавляем к нему созданный Keyword.
                test_case = TestCase(
                    name=f'Test {test_name}: {self.text_accaunt}',
                    tags=f'{test_tags}')
                test_case.keywords = ks

                # Добавляем TestCase к TestCases
                test_cases.append(test_case)

            # Добавлем созданный список TestCases к текущему TestSuite
            suite.tests.extend(test_cases)
Beispiel #4
0
    def start_suite(self, suite, result):

        # Сохраняем значение переданное в аргументах, для параллельного запуска, в переменную self.type_sites.
        if self.args.find("parallel") != -1:
            self.type_sites = "parallel"

        # Формируем общий список сайтов для параллельного прогона. Настраиваем его функционал.
        # Список может быть динамический, если пришел аргумент 'parallel' или статический, если пришел аргумент 'vse'.
        if self.type_sites == 'parallel' or self.type_sites == 'vse':

            # Получаем кол-во динамических сайтов для параллельного прогона.
            if self.type_sites == 'parallel':
                parametrs = self.args.split(':')
                number_sites = int(parametrs[1])
                self.sites = get_sites_list_from_doorway(number_sites)

            # Получаем номер тест сьюта из названия
            result = re.findall(r'\d+', suite.name)
            if not result:
                return
            test_suite_number = int(result[0])

            # Вызываем функцию возвращающую динамический список сайтов, по указанному кол-ву.
            site_list = get_sites_list_from_doorway(number_sites)

            # Берем из полученного списка сайтов, равную часть, с позиции, равной номеру тестсьюта
            count = len(site_list) // 10
            self.sites = site_list[test_suite_number *
                                   count:test_suite_number * count + count]

        # Сохраняем полученный список сайтов, в переменную sites.
        sites = self.sites

        # Создаем объект TestCase, в него будет записывать TestCase, parent - текущий TestSuite
        test_cases = TestCases(parent=suite)

        for site_url in sites:
            # Для формирования данных, по автотесту проверки рекламы в поиске.
            if 'Test Doorway Advertising' in suite.name:
                site_host = site_url.split('//')

                def switch_keyword(argument):
                    switcher = {
                        "arena.com": "билеты в Арена",
                        "luzhniki.com": "Билеты на стадион «Лужники»",
                        "theatreallascala.com": "Билеты в Teatro alla Scala",
                        "crocus-city.me": "https://crocus-city.me",
                        "bdt.com": "https://bdt.com"
                    }
                    return switcher.get(argument, "Invalid host")

            # Получаем переменные с описанием теста и текстом для тегов теста.
            test_name = BuiltIn().get_variable_value('${test_name}')
            test_tags = BuiltIn().get_variable_value('${test_tags}')

            # Создаем Keyword и записываем в список Keywords
            if test_name is None:
                pass
            else:
                ks = Keywords()

                # Для формирования данных, по автотесту проверки рекламы в поиске.
                if 'Test Doorway Advertising' in suite.name:
                    ks.append(
                        Keyword(name='Test run',
                                args=(switch_keyword(site_host[1]), site_url)))
                else:
                    ks.append(Keyword(name='Test run', args=(site_url, )))

                # Создаем TestCase с полученным именем теста и текстом для тегов теста. И добавляем к нему созданный Keyword.
                # Для формирования данных, по автотесту проверки рекламы в поиске.
                if 'Test Doorway Advertising' in suite.name:
                    test_case = TestCase(
                        name=
                        f'{test_name} {urlparse(site_url).hostname} из рекламы в поиске',
                        tags=f'{test_tags}')
                else:
                    test_case = TestCase(
                        name=f'Test {test_name} on {site_url}',
                        tags=f'{test_tags}')

                test_case.keywords = ks

                # Добавляем TestCase к TestCases
                test_cases.append(test_case)

        # Добавлем созданный список TestCases к текущему TestSuite
        suite.tests.extend(test_cases)