示例#1
0
    def test_screenshot(self):
        with allure.step(f"Шаг 1. Проверка открытия страницы {Urls.TEST_STAND_URL}"):
            settings = SettingsParser().get_test_settings()
            main_page = MainPage(settings)
            assert_that(main_page.is_opened(), equal_to(True), "Страница не открылась")

        with allure.step("Шаг 2. Ввод случайно сгенерированног текста"):
            text = TestHelper.get_random_string(self.__LEN_STRING)
            main_page.frame.send_text(text)
            assert_that(main_page.frame.get_text(), equal_to(text), "Текст не совпадает")

        with allure.step("Шаг 3. Проверка, что введенный текст жирный"):
            main_page.frame.do_text_bold()
            assert_that(main_page.frame.is_text_bold(), equal_to(True), "Введенный текст не жирный")

        with allure.step("Шаг 4. Создание скриншота"):
            Screenshooter.set_session_screen_dir()
            Screenshooter.take_screenshot()

            result = cloudinary.uploader.upload(os.path.join(Screenshooter.get_screen_session_dir(),
                                                             Screenshooter.get_screen_file_name()),
                                                public_id=CloudinaryConfig.PUBLIC_ID)

            api = APIUtils(result['url'])
            api.get_image()
            path_orig_img = os.path.join(Screenshooter.get_screen_session_dir(), Screenshooter.get_screen_file_name())
            path_download_img = os.path.join(Screenshooter.get_screen_session_dir(), settings['screen_file_name'])
            assert_that(TestHelper.check_image(path_orig_img, path_download_img), equal_to(True),
                        "Скриншоты неидентичны")
示例#2
0
    def test_rest_api_get_all_posts(self):

        with allure.step("Шаг 1. Проверка статус кода при запросе GET /posts"):

            api = APIUtils(Urls.TEST_STAND_URL)
            response = api.get(Urls.ALL_POSTS)
            assert_that(api.get_status_code(), equal_to(SC.STATUS_CODE_OK),
                        f"Статус код отличается от {SC.STATUS_CODE_OK}")

        with allure.step("Шаг 2. Проверка расширения файла"):
            posts_content = api.get_content_json()
            assert_that(TestHelper.check_json(posts_content), equal_to(True),
                        f"Расширение файла не {EX.JSON}")

        with allure.step("Шаг 3. Проверк, что json файл отсортирован по id"):
            posts_models = TestHelper.add_post_instance(posts_content)
            assert_that(TestHelper.check_posts(posts_models), equal_to(True),
                        "Список не отсортирован")
示例#3
0
    def test_rest_api_get_one_user(self):
        with allure.step(
                "Шаг 1. Проверка статус кода при запросе GET /users/5"):
            api = APIUtils(Urls.TEST_STAND_URL)
            response = api.get(Urls.USERS.format(id='5'))
            assert_that(api.get_status_code(), equal_to(SC.STATUS_CODE_OK),
                        f"Статус код отличается от {SC.STATUS_CODE_OK}")

        with allure.step(
                "Шаг 2. Проверка, что данные полученные на прошлом шаге соотвествуют данным с запросом GET /users/5"
        ):
            another_user_content = api.get_content_json()
            another_user_model = TestHelper.add_user_instance(
                another_user_content)
            assert_that(
                another_user_model, equal_to(UserStand.USER),
                "Данные пользователя не соответствуют данным полученным на прошлом шаге"
            )
示例#4
0
    def test_rest_api_get_all_users(self):
        with allure.step("Шаг 1. Проверка статус кода при запросе GET /users"):
            api = APIUtils(Urls.TEST_STAND_URL)
            response = api.get(Urls.ALL_USERS)
            assert_that(api.get_status_code(), equal_to(SC.STATUS_CODE_OK),
                        f"Статус код отличается от {SC.STATUS_CODE_OK}")

        with allure.step("Шаг 2. Проверка расширения файла"):
            assert_that(api.get_headers(response, TestSettings.HEADER),
                        contains_string(EX.JSON),
                        f"Расширение файла не {EX.JSON}")

        with allure.step(
                f"Шаг 3. Проверка, что пользователь с id{TestSettings.USER_CHELSEY_DIETRICH['id']} существует"
        ):
            users = api.get_content_json()
            users_models = TestHelper.add_user_instance(users)
            user = TestHelper.add_user_instance(
                TestSettings.USER_CHELSEY_DIETRICH)
            UserStand.USER = user
            assert_that(
                users_models[int(TestSettings.USER_CHELSEY_DIETRICH['id']) -
                             1], equal_to(user),
                f"Пользователь с id{TestSettings.USER_CHELSEY_DIETRICH['id']} имеет другие данные"
            )
示例#5
0
    def test_xml_with_rest_api(self):

        with allure.step("Шаг 1. Проверить статус код"):
            settings = SettingsParser().get_test_settings()
            api = APIUtils(settings['request'])
            response = api.get()
            assert_that(api.get_status_code(), equal_to(SC.STATUS_CODE_OK),
                        f"Статус код отличается от {SC.STATUS_CODE_OK}")

        with allure.step("Шаг 2. Проверить расширение файла"):
            TestHelper().download_xml(response)
            assert_that(TestHelper.is_xml_extension(settings['xml']), equal_to(True),
                        f"Расширение файла не {EX.XML_EXTENSION}")
            xml = XmlParser.convert_xml_to_dict(settings['xml'])

        with allure.step("Шаг 3. Проверить что xml отсортирован"):
            books = TestHelper.add_book_instance(xml)
            assert_that(TestHelper.check_books_id(books), equal_to(True), "Список не отсортирован")

        with allure.step("Шаг 4. Проверить книги с высокой и низкой ценой"):
            max_price = max([x.get_price() for x in books])
            min_price = min([x.get_price() for x in books])
            assert_that(max_price, is_not(equal_to(min_price)), "Цены совпадают")
示例#6
0
    def test_rest_api_get_one_post_fail(self):
        with allure.step(
                "Шаг 1. Проверка статус кода при запросе GET /posts/150"):
            api = APIUtils(Urls.TEST_STAND_URL)
            api.get(Urls.POST.format(id='150'))
            assert_that(api.get_status_code(), equal_to(SC.STATUS_CODE_OK),
                        f"Статус код отличается от {SC.STATUS_CODE_OK}")

        with allure.step("Шаг 2. Проверка, что тело ответа пустое"):
            post_150_content = api.get_content_json()
            assert_that(post_150_content, empty(), "Тело запроса не пустое")
示例#7
0
    def test_rest_api_post_all_posts(self):
        with allure.step(
                "Шаг 1. Проверка статус кода при запросе POST /posts"):
            api = APIUtils(Urls.TEST_STAND_URL)
            data = {
                "title": self.EXP_TITLE,
                "body": self.EXP_STRING,
                "userId": Urls.USER_ID
            }
            api.post(Urls.ALL_POSTS, data)
            assert_that(api.get_status_code(),
                        equal_to(SC.STATUS_CODE_CREATED),
                        f"Статус код отличается от {SC.STATUS_CODE_CREATED}")

        with allure.step("Шаг 2. Проверка отправленных данных методом POST"):
            post_content = api.get_content_json()
            post_model = TestHelper.add_post_instance(post_content)
            assert_that(data['title'], equal_to(post_model.get_title()),
                        "title не соответствует переданным данным")
            assert_that(data['body'], equal_to(post_model.get_body()),
                        "body не соответствует переданным данным")
            assert_that(data['userId'], equal_to(post_model.get_userId()),
                        "userId не соответствует переданным данным")
            assert_that(post_model.get_id(), is_not(empty()), "id пуст")
示例#8
0
    def test_rest_api_get_one_post(self):
        with allure.step(
                "Шаг 1. Проверка статуса кода при запросе GET /posts/99"):
            api = APIUtils(Urls.TEST_STAND_URL)
            api.get(Urls.POST.format(id='99'))
            assert_that(api.get_status_code(), equal_to(SC.STATUS_CODE_OK),
                        f"Статус код отличается от {SC.STATUS_CODE_OK}")

        with allure.step("Шаг 2. Проверка userId"):
            post_99_content = api.get_content_json()
            post_99_model = TestHelper.add_post_instance(post_99_content)
            assert_that(post_99_content['userId'],
                        equal_to(post_99_model.get_userId()),
                        "userId не совпадают")

        with allure.step("Шаг 3. Проверка id"):
            assert_that(post_99_content['id'],
                        equal_to(post_99_model.get_id()), "id не совпадают")

        with allure.step("Шаг 4. Проверка, что title и body не пустые"):
            assert_that(post_99_model.get_title(), is_not(empty()),
                        "title не пуст")
            assert_that(post_99_model.get_body(), is_not(empty()),
                        "body не пуст")
示例#9
0
 def test_basic_authorization(self):
     with allure.step(f"Прохождение авторизации на ресурсе {Urls.TEST_STAND_URL}"):
         settings = SettingsParser().get_test_settings()
         api = APIUtils(Urls.TEST_STAND_URL)
         api.get(auth=(settings['login'], settings['password']))
         assert_that(settings['template'], equal_to(api.get_content_json()), "Данные не совпадают")