Рубрики
Без рубрики

Как провести локализацию тестирования с использованием селена Webdriver?

Автоматизация имеет жизненно важное значение для всего процесса доставки успешного веб -продукта. Challen … с меткой селена, тестирования, Webdriver, Python.

Автоматизация имеет жизненно важное значение для всего процесса доставки успешного веб -продукта. Задача, связанная с тестированием веб-сайта или веб-приложения, растет, если он создан для глобальной аудитории (особенно не английской аудитории). Тесты автоматизации должны быть выполнены, чтобы гарантировать, что функции продукта (включая контент) обслуживают конкретные локалы. Вот почему локализация тестирования с использованием селена WebDriver становится все более актуальным, когда для «мира» создается множество программных продуктов!

Мы уверены, что вы, должно быть, столкнулись с сценариями, когда какой -то контент или часть веб -сайта не отображались правильно в определенном месте. Это распространенная дилемма, с которой часто сталкиваются большинство инженеров по автоматизации селена, и крайне вероятно, что неправильно отформатированные строки являются частью файлов ресурсов. В рамках тестирования локализации с использованием селена WebDriver нам необходимо проверить, выглядит ли веб -сайт (или приложение) и функционирует так же после применения тестирования автоматизации локализации.

Это именно то, что этот блог стремится доставить. К концу этого блога вам было бы удобно провести тестирование локализации с помощью Selenium webdriver Когда мы касаемся критических аспектов локализации, в том числе о том, как провести тестирование автоматизации локализации.

Что такое тестирование автоматизации локализации?

Локализационное тестирование-это форма нефункционального тестирования, где локализованная версия продукта перепроверяется для конкретной культуры или конкретных настройки локали. В большинстве случаев функциональные возможности в не локализованном продукте совпадают с локализованным продуктом; Следовательно, пользовательский интерфейс и содержание являются основными областями, затронутыми локализацией.

Многие инженеры и тестеры используют тестирование локализации и тестирование глобализации взаимозаменяемо, но между ними существует огромная разница. Как указывает название, глобализация в основном фокусируется на глобальных (или во всем мире) возможностях продукта, тогда как локализация в основном фокусируется на конкретном наборе пользователей, принадлежащих к данной культуре или локали. Затем проводится тестирование интернационализации, которое помогает подготовить продукт таким образом, чтобы он использовался на разных языках, регионах и местах во всем мире.

Ниже показан снимок домашней страницы Google с локалами, установленными как «ZH-HK» (китайский-Гонконг) и «He-Il» (иврит-Израиль) соответственно:

Локализованные участки отмечены для ясности и в основном включают в себя «переведенные строки», доступные на домашней странице.

Локализационное тестирование также называется ‘ l10n «Как есть десять символов между L & N в слове« локализация ».

Основные особенности тестирования локализации

Локализация тестирования-это нефункциональная форма тестирования. Вот почему он используется для тестирования пользовательского интерфейса, порядок отображения адреса, строк (или языкового словаря), даты и времени, календари, формата валюты и других элементов, которые являются регионами или местными, специфичными для региона.

Некоторые ключевые функции тестирования локализации (или почему вы должны выполнить тестирование автоматизации локализации) перечислены ниже:

Локализация пользовательского интерфейса

Как показано выше на скриншотах Google на двух разных языках, пользовательский интерфейс должен быть создан адаптирован, чтобы можно было использовать целевую категорию людей (или пользователей).

Расположение контента

Критическая разница между двумя локалами заключается в содержании, поскольку оно должно быть адаптировано в соответствии с местной культурой. Локализация тестирования с использованием селена WebDriver должно быть выполнено для проверки того, удобно ли это для целевой локальной категории.

Контент также включает в себя локализованный язык, который должен соответствовать языку целевого региона. Например, «ZH-SG» и «ZH-HK», ароматы китайского языка, должны использоваться для китайского локали и китайского сар-локали в Китае, соответственно.

Аппаратная совместимость

Эта задача может быть достигнута с помощью автоматизации тестов селена путем проведения локализованных тестов в различных комбинациях браузеров, платформ (операционные системы) и устройства (или эмуляторы). Вместо того, чтобы использовать локальную селенскую сетку, которая не является масштабируемой опцией, вы должны использовать Selenium Grid Cloud на LambDatest для проведения тестирования локализации с использованием селена WebDriver.

Тест «Совместимость с оборудованием» будет проверять, существует ли аппаратная и программная совместимость в целевой локали (или регионе).

Как провести локализацию тестирования?

Основным различием между автоматизацией тестов селена для не локализованных сценариев и локализованными сценариями является целевая локаль и культура, против которой выполняются тесты. Помимо этих различий, большинство шагов остаются неизменными между локализованными и нелокализованными (или нормальными) случаями.

Вы должны выполнить эти шаги для проведения тестирования автоматизации локализации:

Приоритет функций для тестирования локализации

Веб -сайт (или веб -приложение) может состоять из «N» числа страниц, сосредоточенных на пользовательском интерфейсе и контенте. Локализация тестирования для страниц должно быть приоритетом, привлекая правильных заинтересованных сторон, чтобы проблемы могли быть обнаружены для страниц, которые наиболее важны для локализованной аудитории.

Настройка тестовой среды

Автоматизация тестирования селена на локальной селене сетки может попасть в контрольно -пропускной пункт, если вы хотите ускорить процесс локализации тестирования и намереваться провести тестирование в широком диапазоне браузеров и комбинаций платформ.

Перемещение локализации тестирования в облачную селеневую сетку, такую как лямбдейл, помогает ускорить процесс тестирования, поскольку она использует преимущества параллельного выполнения теста. Сделать его более масштабируемым подходом, чем выполнение тестов на локальной селене.

Наличие надежной тестовой среды полезно для ускорения стратегии GTM (Go-To-Market) и является лучшим способом использования инструментов тестирования локализации.

Генерация сценариев сценариев селена

Это самый важный шаг в тестировании локализации с использованием селена Webdriver. Здесь генерируются сценарии автоматизации тестирования, специфичные для целевой локали и региона. При разработке сценария следует учитывать масштабируемость и удобство использования (в разных местах).

Например, локаль в сценарии должен быть установлен на «He-Il», если целевой областью является Израиль. Тот же принцип должен применяться для тестирования автоматизации с различными локалами.

Выполнение и генерация результатов

Подобно не локализованному тестированию, локализованные атрибуты веб-продукта следует сравнить с ожидаемыми атрибутами. Например, пользовательский интерфейс и контент на тестовой странице следует сравнить с ожидаемыми результатами, и то же самое следует проверить с лингвистским экспертом, который обладает опытом на целевом языке.

Инструменты тестирования локализации или плагины для генерации отчетов должны использоваться для создания отчета о тестировании, чтобы все члены команды находились на одной странице. Поднятые ошибки должны быть исправлены разработчиками, и вышеуказанные шаги должны повторяться, пока продукт не достигнет стадии «локализованного выпуска продукта».

Ниже показано подробное представление о жизненном цикле «Локализация».

Контрольный список тестирования локализации

При разработке сценариев автоматизации, которые выполняют локализованное тестирование, необходимо разработать сценарии таким образом, чтобы они были масштабируемыми и могут быть расширены на разные локалы с минимальными (или нет) изменениями.

Тщательно курируют одни из лучших практик, за которыми следует следовать для тестирования локализации:

  • Лингвисты, которые хорошо разбираются в местном языке или локализационной фирме с проверенной экспертизой в «I10N», должны участвовать в процессе тестирования и обзора.
  • Существующая реализация должна быть интернационализирована для DBCS (двойной набор символов) Перед отправкой текста для перевода.
  • При разработке сценария селена веб -автоматизации у вас есть возможность выбрать из Веб -локаторы в селене Как имя, идентификатор, текст ссылки, имя класса, xpath и многое другое. Должен быть выбран наиболее подходящий веб-локатор, который является равномерным (или остается неизменным) в разных местах.

Это гарантирует, что изменения кода минимальны, когда тот же код используется для проведения тестирования локализации с использованием других локалов.

  • Следует избегать усилий по дублированию при сценарии различных тестовых сценариев.
  • Рекомендуется отделить локалы от реализации (то есть отсутствие жесткой информации, связанной с локали,), чтобы добавление (или удаление) локали или региона становилось простым. Этот подход приведет к минимальным (или нет) изменениям в реализации, тем самым уменьшив усилия по обслуживанию.

Ниже показан пример страницы поиска Google, xPath кнопки «Поиск» не изменяется в разных локалах. Следовательно, локатор XPath может использоваться при тестировании функциональности поиска Google для разных локалов.

Кнопка XPath of Google поиска]//input [@name = ‘btnk’], которая остается неизменной для разных локалов. Следовательно, XPath кнопки может использоваться для запуска «операции поиска», поскольку она не зависит от региона, откуда выполняется поиск.

Преимущества и недостатки тестирования локализации

Тестирование локализации не является обязательной деятельностью и необходимо выполнять, только если продукт нацелен на конкретный регион или язык. Автоматизация тестов селена для тестирования локализации имеет свою собственную долю преимуществ и недостатков, поскольку это деятельность, которая требует не только технической экспертизы, но и «лингвистического» опыта.

Преимущества тестирования локализации

Давайте посмотрим на преимущества, связанные с локализацией, с использованием селена Webdriver:

  • Это помогает в разработке масштабируемого тестового кода, который можно распространить на другие локалы (или регионы)
  • Хотя развертывание первой версии локализованных тестов может занять время, ее последующие выпуски и тесты для обработки других локалов значительно сэкономит время.

Недостатки тестирования локализации

Локализация тестирования с использованием селена WebDriver имеет значительные преимущества, но у него также есть свои недостатки (или недостатки). Вот недостатки тестирования автоматизации локализации:

  • Лингвистские эксперты или локализация с проверенной экспертизой в переводе должны быть вовлечены в процесс тестирования локализации.
  • Хранение DBCS (двойной набор символов) может варьироваться в стране и региона. Эти дополнительные сложности могут задержать тестовую деятельность.
  • Набор местной фирмы по переводу или лингвистических экспертов приводит к увеличению общего бюджета.

Демонстрация: локализация тестирования с использованием селена Webdriver

В этом разделе мы поймем входы и выходы на тестирование локализации в селене. Мы будем использовать облачную сетку Selenium на LambDatest, чтобы мы могли использовать другие комбинации браузера и ОС, с которыми проводится тестирование автоматизации локализации.

При тестировании локализации содержание и пользовательский интерфейс настроены на требования конкретного региона и локали. Следовательно, первый шаг в тестировании локализации состоит в том, чтобы проверить, установлен ли локаль браузера или нет.

Для изменения языка браузера для многоязычных тестов с использованием селена Webdriver на Chrome & Firefox выполняется путем предоставления необходимых вариантов хромеопированию и Firefoxoptions, соответственно.

Локализация тестирования с использованием селена Python

Использование вариантов драйвера Chrome

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('prefs', {'intl.accept_languages':'{locale}'.format(locale=language)})
capabilities = DesiredCapabilities.CHROME
web_driver = webdriver.Chrome(options=chrome_options, desired_capabilities=capabilities)

Использование вариантов водителя Firefox

ff_profile = webdriver.FirefoxProfile()
ff_profile.set_preference("intl.accept_languages", language)
ff_profile.update_preferences()
capabilities = DesiredCapabilities.FIREFOX
web_driver = webdriver.Firefox(desired_capabilities = capabilities, browser_profile=ff_profile)

Локализация тестирования с использованием селена Java

Использование вариантов драйвера Chrome

ChromeOptions chromeOptions = new ChromeOptions();
Map chrome_prefs = new HashMap();
chrome_prefs.put("intl.accept_languages", language);
chromeOptions.setExperimentalOption("prefs", chrome_prefs);
WebDriver web_driver = new ChromeDriver(chromeOptions);

Использование вариантов водителя Firefox

FirefoxOptions firefoxOptions = new FirefoxOptions();
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("intl.accept_languages", language);
firefoxOptions.setProfile(firefoxProfile);
web_driver = new FirefoxDriver(firefox_options);

Локализация тестирования с использованием селена C#

Использование вариантов драйвера Chrome

var chromeOptions = new ChromeOptions();
chromeOptions.AddUserProfilePreference("intl.accept_languages", language);
IWebDriver web_driver = new ChromeDriver(chromeOptions);

Использование вариантов водителя Firefox

var firefoxOptions = new FirefoxOptions();
firefoxOptions.SetPreference("intl.accept_languages", language);
ICapabilities capabilities = firefoxOptions.ToCapabilities();
IWebDriver web_driver = new FirefoxDriver(firefoxOptions);

Демонстрация тестирования локализации в облаке селена

Мы будем использовать сценарий в реальном времени тестирования автоматизации локализации с использованием селена и Python в браузерах Chrome и Firefox. Вот тестовый сценарий, который будет проверен на разные локалы (или регионы). Мы использовали Расширение коммутатора локали для Chrome Для определения локализации, который следует использовать в реализации.

Комбинация тестов [Браузеры-Firefox 78.0 на MacOS Mojave и Chrome 80.0 в Windows 10, Locales-He-Il, AR-BH, ZH-HK и AR-DZ]

  1. Установите локали браузера Firefox в требуемые локалы.
  2. Установите локали браузера Chrome в тестовые локали.
  3. Перейдите к URL https://www.google.com Анкет
  4. Поиск «rambdatest».
  5. Нажмите на первую ссылку и откройте страницу.
  6. Утверждайте, если локаль неправильно устанавливается, или заголовок страниц не соответствует ожидаемому заголовку.

Прежде чем продвигаться вперед с реализацией, вы должны создать учетную запись на LambDatest, чтобы вы могли создать необходимые возможности для приведенного выше сценария тестирования. Вы должны отметить имя пользователя и подключение к доступу из Страница профиля так же будет использоваться для доступа к селене сетки на rambdatest.

Возможности для браузера и комбинаций платформ генерируются с использованием Lambdatest возможностей генератор Анкет

Реализация

import pytest
import pytest_html
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import urllib3
import warnings
from time import sleep
import sys

ch_capabilities = {
        "build" : "[Python-1] Localization Testing with Chrome & Windows on LambdaTest Selenium Grid",
        "name" : "[Python-1] Localization Testing with Chrome & Windows on LambdaTest Selenium Grid",
        "platform" : "Windows 10",
        "browserName" : "Chrome",
        "version" : "80.0"
}

ff_capabilities = {
        "build" : "[Python-1] Localization Testing with Firefox & macOS on LambdaTest Selenium Grid",
        "name" : "[Python-1] Localization Testing with Firefox & macOS on LambdaTest Selenium Grid",
        "platform" : "macOS Mojave",
        "browserName" : "Firefox",
        "version" : "78.0"
}

user_name = "user-name"
app_key = "access-key"

@pytest.mark.parametrize(
                         "capabilities, test_url, b_locale",
                         [
                            (ch_capabilities, "https://www.google.com", "he-IL"), #Chrome - Hebrew
                            (ff_capabilities, "https://www.google.com", "he-IL"), #Firefox - Hebrew
                            (ff_capabilities, "https://www.google.com", "ar-BH"), #Firefox - Arabic Bahrain
                            (ch_capabilities, "https://www.google.com", "zh-HK"),  #Chrome - Chinese (Hong Kong)
                            (ch_capabilities, "https://www.google.com", "ar-DZ"),  #Chrome - Arabic Algeria
                            (ff_capabilities, "https://www.google.com", "ar-DZ"), # Firefox - Arabic Algeria
                            (ch_capabilities, "https://www.google.com", "ar-BH"), #Chrome - Arabic Bahrain
                            (ff_capabilities, "https://www.google.com", "zh-HK"),  #Chrome - Chinese (Hong Kong)
                         ]
                        )
def test_open_url(capabilities, test_url, b_locale):
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    if capabilities["browserName"] == "Chrome":
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_experimental_option('prefs', {'intl.accept_languages':'{locale}'.format(locale=b_locale)})
        remote_url = "https://" + user_name + ":" + app_key + "@hub.lambdatest.com/wd/hub"
        web_driver = webdriver.Remote(command_executor = remote_url, desired_capabilities = capabilities, options=chrome_options)
    elif capabilities["browserName"] == "Firefox":
        ff_profile = webdriver.FirefoxProfile()
        ff_profile.set_preference("intl.accept_languages", b_locale)
        ff_profile.update_preferences()
        remote_url = "https://" + user_name + ":" + app_key + "@hub.lambdatest.com/wd/hub"
        web_driver = webdriver.Remote(command_executor = remote_url, desired_capabilities = capabilities, browser_profile=ff_profile)

    web_driver.get(test_url)
    web_driver.maximize_window()
    print("Searching lambdatest on google.com ")
    time.sleep(5)
    elem = web_driver.find_element(By.NAME, "q")
    elem.send_keys("LambdaTest")
    elem.submit()
    time.sleep(2)

    if (b_locale == "he-IL"):
        web_driver.find_element(By.XPATH, "//span[.='LambdaTest: Most Powerful Cross Browser Testing Tool ...']").click()
    elif (b_locale == "zh-HK"):
        web_driver.find_element(By.XPATH, "//h3[.='LambdaTest: Most Powerful Cross Browser Testing Tool Online']").click()
    elif (b_locale == "ar-BH") or (b_locale == "ar-DZ"):
        web_driver.find_element(By.XPATH, "//span[.='LambdaTest: Most Powerful Cross Browser Testing Tool ...']").click()

    time.sleep(5)
    title = "Most Powerful Cross Browser Testing Tool Online | LambdaTest"
    assert title ==  web_driver.title

    language = web_driver.execute_script("return window.navigator.userlanguage || window.navigator.language")
    assert language == b_locale
    web_driver.quit()

Прохождение кода

Шаг 1: Возможности для двух браузеров и комбинаций ОС генерируются с использованием генератора LambDatest. Ниже показаны возможности, генерируемые для комбинации Chrome & Windows 10

ch_capabilities = {
        "build" : "[Python-1] Localization Testing with Chrome & Windows on LambdaTest Selenium Grid",
        "name" : "[Python-1] Localization Testing with Chrome & Windows on LambdaTest Selenium Grid",
        "platform" : "Windows 10",
        "browserName" : "Chrome",
        "version" : "80.0"
}

Шаг 2: Marker @pytest.mark.parametrize используется для создания параметризованных тестов, в которых установлены входные данные (возможности браузера, тестовый URL, тестовый локаль).

@pytest.mark.parametrize(
"capabilities, test_url, b_locale",
 [
   (ch_capabilities, "https://www.google.com", "he-IL"), #Chrome - Hebrew
   (ff_capabilities, "https://www.google.com", "he-IL"), #FF - Hebrew
   (ff_capabilities, "https://www.google.com", "ar-BH"), #FF - Arabic Bahrain
   ……………………………………..
   ……………………………………..
 ]

Шаг 3: Функция теста test_open_url () имеет входные параметры (возможности, test_url и b_locale). Эти параметры находятся в той же последовательности, что и в маркере @pytest.mark.parametrize.

def test_open_url(capabilities, test_url, b_locale): 

Шаг 4: В зависимости от браузера, в котором выполняются тесты, необходимые параметры драйвера (или параметры профиля) используются для установки локали. Для браузера Chrome метод add_experimental_option () в Chromeoptions используется для установки ключа intl.accept_languages в тестирование «Локали под тестированием».

Комбинация пользовательского имени и доступа используется для доступа к URL-адресу rambdatest Grid [@hub.lambdatest.com/wd/hub]. Аргумент вариантов WebDriver. Remote () устанавливается на Chrome_options, так что установленные хромеопины (то есть Chrome_options) используются для тестирования автоматизации.

if capabilities["browserName"] == "Chrome":
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_experimental_option('prefs', {'intl.accept_languages':'{locale}'.format(locale=b_locale)})
        remote_url = "https://" + user_name + ":" + app_key + "@hub.lambdatest.com/wd/hub"
        web_driver = webdriver.Remote(command_executor = remote_url, desired_capabilities = capabilities, options=chrome_options)

Шаг 5: Для браузера Firefox создается экземпляр FirefoxProfile. Метод set_preference () в Firefoxprofile используется для установки ключа intl.accept_languages в тестовую локацию. Метод Update_preferences () используется для обновления настроек профиля.

elif capabilities["browserName"] == "Firefox":
        ff_profile = webdriver.FirefoxProfile()
        ff_profile.set_preference("intl.accept_languages", b_locale)
        ff_profile.update_preferences()
        remote_url = "https://" + user_name + ":" + app_key + "@hub.lambdatest.com/wd/hub"    

Шаг 6: Настройка Browser_profile в Удаленный Webdriver устанавливается в созданный профиль Firefox (и использует тестовую локаль).

web_driver = webdriver.Remote(command_executor = remote_url, desired_capabilities = capabilities, browser_profile=ff_profile)

Шаг 7: Опция «Интернет -инспектор» в Chrome используется для поиска необходимого веб -элемента на домашней странице Google. Метод send_keys () в селене WebDriver используется для передачи поискового члена (т. Е. LambDatest) в Searchbox, а метод отправки () используется для запуска операции поиска.

elem = web_driver.find_element(By.NAME, "q")
elem.send_keys("LambdaTest")
elem.submit()

Шаг 8: Это самый важный шаг, когда XPath «первого результата поиска для LambDatest» для каждого локали (HE-IL, AR-BH, ZH-HK и AR-DZ) используется для автоматического тестирования.

Для упрощения и ускорения процесса мы использовали Расширение POM Builder в Chrome для поиска XPath для каждого результата.

if (b_locale == "he-IL"):
        web_driver.find_element(By.XPATH, "//span[.='LambdaTest: Most Powerful Cross Browser Testing Tool ...']").click()
    elif (b_locale == "zh-HK"):
        web_driver.find_element(By.XPATH, "//h3[.='LambdaTest: Most Powerful Cross Browser Testing Tool Online']").click()
    elif (b_locale == "ar-BH") or (b_locale == "ar-DZ"):
        web_driver.find_element(By.XPATH, "//span[.='LambdaTest: Most Powerful Cross Browser Testing Tool ...']").click()

Реализация может быть легко расширена для обработки различных диалектов, поскольку они получены из одного и того же языка. Например, AR-TD, AR-KM, AR-DJ и т. Д.-это разные диалекты, полученные из арабского языка. То же самое может быть расширено для обработки диалектов разных языков (например, китайцев, японцев и т. Д.).

Шаг 9: Метод execute_script () селена WebDriver используется для выполнения сценария JS для получения локали браузера (то есть window.navigator.userlanguage или window.navigator.language).

Assert поднимается, если локаль не установлен должным образом или заголовок страницы не соответствует ожидаемому заголовку.

title = "Most Powerful Cross Browser Testing Tool Online | LambdaTest"
assert title ==  web_driver.title

language = web_driver.execute_script("return window.navigator.userlanguage || window.navigator.language")
assert language == b_locale

Исполнение

Выполнение выполняется путем вызова команды Pytest на терминале. Поскольку тесты запускаются в облачной сетке на LambDatest, мы используем Параллельное тестирование в Pytest Для проведения 4 тестов параллельно.

pytest -s –v –n= 4 test_pytest.py

Как видно в журналах выполнения и статусе автоматизации на LambDatest, четыре теста выполняются параллельно.

Статус выполнения указывает на то, что тесты прошли без каких -либо проблем.

Вывод

Тестирование локализации является одним из наиболее важных упражнений, если вам нужно приспособить контент и пользовательский интерфейс в соответствии с потребностями целевой области. Наличие лингвистического эксперта или привлечения локализационной фирмы с проверенной экспертизой необходимо для локализации; Иначе проблемы (на языке или пользовательском интерфейсе) будут обнаружены целевыми пользователями, что может затруднить общий опыт.

Локализационное тестирование с использованием селена WebDriver при использовании с облачной сеткой Selenium, такой как LambDatest, может быть чрезвычайно полезным, поскольку это ускорит процесс тестирования. Инженеры по автоматизации Selenium могут использовать функцию параллельного тестирования платформы и тестовую структуру, то есть, Pytest, ведут себя и т. Д., Чтобы быстро отслеживать процесс тестирования локализации. Мы надеемся, что теперь вы также сможете внедрить такие инструменты тестирования локализации! Если вы сталкиваетесь с какими -либо проблемами или вопросами, не стесняйтесь обращаться через раздел комментариев.

Счастливого тестирования!

Оригинал: “https://dev.to/himanshusheth004/how-to-perform-localization-testing-using-selenium-webdriver-5747”