Решение проблемы некорректного отображения кириллических символов в ТестОпс при прикреплении JSON-файлов (Pytest)

Последние изменения: 26.11.2024

Описание проблемы

При прикреплении JSON-файлов,  в авто тестах кириллические символы отображаются некорректно. Вместо русских букв выводятся их числовые коды.



Причина

Pytest кодирует все не-ASCII символы из идентификаторов набора параметров с помощью алгоритма unicode_escape.
Это приводит к тому, что кириллические символы заменяются на их Unicode-представления.

Решение

Чтобы правильно отображать кириллические символы в отчетах, необходимо декодировать их обратно с помощью следующего кода:

decoded_id = request.node.callspec.id.encode("ascii").decode("unicode_escape")

Пример использования

@pytest.mark.parametrize("url_for_check", [pytest.param("https://example.com", id="Главная страница API")])
def test_1(request, url_for_check):
decoded_id = request.node.callspec.id.encode("ascii").decode("unicode_escape")
allure.dynamic.title(f"Проверка открытия - {decoded_id}")

Рекомендации

Настройка кодировок:
Проверьте, что все файлы и окружение настроены на использование кодировки UTF-8 для корректной обработки кириллических символов.

    Помогла ли вам статья?