Как (навсегда) установить язык - PullRequest
1 голос
/ 14 октября 2019

в сценарии UFT (ранее QTP) Я пытаюсь изменить локаль на заданное значение перед началом выполнения сценария. Наши сценарии работают на виртуальных машинах, которые иногда имеют разные локали, определяемые в результате сообщений об ошибках (например, различное форматирование даты). Установив локаль в начале скрипта, я хочу избежать этих ошибок.

Я знаю, как изменить локаль в скрипте, это довольно просто:

        If Currentlocale <> 2057 Then
            SetLocale "2057"
        End If

ЕслиЯ включаю этот код в свой UFT-скрипт, локаль изменяется во время выполнения на 2057 и остается таковой до завершения работы скрипта. Отлично! У нас есть десятки сценариев, поэтому я не хочу включать этот фрагмент кода в каждый отдельный сценарий.

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

Есть предложения как исправить?

1 Ответ

0 голосов
/ 14 октября 2019

Да, вы можете. Начало вашего теста с использованием SetLocale (lcid) (или другого подходящего местоположения) таково:

SetLocale("en-gb") ' sets locale to UK 
SetLocale("en-us") ' sets locale to US 
SetLocale("de") ' sets locale to Germany 

https://admhelp.microfocus.com/uft/en/all/VBScript/Content/html/882ca1eb-81b6-4a73-839d-154c6440bf70.htm

Чтобы изменить локаль, мы также можем поиграть с реестром. ... Измените настройки региона / местоположения системы с помощью vbs

...