add icon indicating copy to clipboard operation
add copied to clipboard

[BUG] xddTestRunner не может запустить клиента тестирования под пользователем с паролем

Open arkuznetsov opened this issue 4 years ago • 9 comments

Описание ошибки Если для запуска тестов используется пользователь с паролем, то при запуске клиента тестирования появляется запрос пароля.

Сценарий воспроизведения

  1. Добавить в тестируемую базу пользователя с паролем
  2. Запустить менеджер тестирования и открыть xddTestRunner
  3. Добавить дымовой тест открытия форм
  4. При запуске клиента тестирования появится запрос пароля

Ожидаемое поведение, если бы ошибки не было Запуск клиента тестирования выполняется под тем же пользователем, под которым запущен менеджер тестирования без запроса пользователя/пароля.

Лечится в обработке ./plugins/ТестКлиенты.epf в функции ПодключитьТестКлиент

вместо:

	СтрокаЗапуска = СтрокаЗапускаТестКлиента(ИмяПользователя, Пароль, Порт, ДопПараметры);

	УправлениеПриложениями = КонтекстЯдра.Плагин("УправлениеПриложениями");
	УправлениеПриложениями.ВыполнитьКомандуОСБезПоказаЧерногоОкна(СтрокаЗапуска, Ложь, Ложь);

сделать:

	СтрокаЗапуска = КонтекстЯдра.СтрШаблон_(
		"ENTERPRISE /IBConnectionString""%1""%2%3 /TestClient -TPort%4 /L%5 %6 /DisableStartupMessages",
		СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""),
		?(ПустаяСтрока(ИмяПользователя), "", " /N""" + ИмяПользователя + """"),
		?(ПустаяСтрока(Пароль), ""," /P""" + Пароль + """"),
		XMLСтрока(Порт),
		ТекущийЯзык(),
		ДопПараметры);
		
	ЗапуститьСистему(СтрокаЗапуска);

Вроде логика использования так не ломается. Но еще лучше взять логику запуска клиента тестирования из bdd.

arkuznetsov avatar Apr 20 '21 08:04 arkuznetsov

А если паролем является восемь пробелов? :)

krasilnikovao avatar Apr 20 '21 08:04 krasilnikovao

@krasilnikovao 1. Это не имеет отношения к проблеме. 2. В функции СтрокаЗапускаТестКлиента строка запуска формируется ровно также.

arkuznetsov avatar Apr 20 '21 09:04 arkuznetsov

@arkuznetsov а в чем разница с существующим кодом?

в том, что если пароль не передан кодом, 1С-как сама его подставит при выполнении ЗапуститьСистему ?

artbear avatar Apr 23 '21 08:04 artbear

@arkuznetsov а в чем разница с существующим кодом?

в том, что если пароль не передан кодом, 1С-как сама его подставит при выполнении ЗапуститьСистему ?

Да, именно в этом. В тесте открытия форм вообще нет возможности передать пароль.

arkuznetsov avatar Apr 23 '21 08:04 arkuznetsov

@arkuznetsov Проверял запуск своего исправления запусков тестов в командной строке?

у 1С есть баг - при подобном запуске она копипастит все параметры ком.строки из родительского процесса, в т.ч. параметр /Out ФайлЛога

и при попытке записи в файл лога в новом сеансе выдается модальная ошибки блокировки.

насколько я помню, в бдд-части это специально обходится через явное указание отдельного параметра /Out

artbear avatar Apr 23 '21 08:04 artbear

@arkuznetsov возможность передачи пароля есть, есть спец.параметр --testclient у ванесса-раннер и у ванесса-адд для управления логином/паролем/портом клиента тестирования

artbear avatar Apr 23 '21 08:04 artbear

@arkuznetsov возможность передачи пароля есть, есть спец.параметр --testclient у ванесса-раннер и у ванесса-адд для управления логином/паролем/портом клиента тестирования

а где этот параметр описан?

arkuznetsov avatar Apr 26 '21 15:04 arkuznetsov

@arkuznetsov возможность передачи пароля есть, есть спец.параметр --testclient у ванесса-раннер и у ванесса-адд для управления логином/паролем/портом клиента тестирования

а где этот параметр описан?

отдельной документации в исходниках нет. но при запуске через vrunner help xunit есть описание этого параметра с примерами

Предлагаю тикет закрыть. @arkuznetsov

artbear avatar Oct 28 '21 12:10 artbear

Получается, что пароль пользователя нужно задавать дважды один и тот же. Первый раз в параметре --db-pwd Второй раз в параметре --testclient. Это неудобно.

Ожидаемое поведение. Параметр --testclient позволяет переопределить параметры подключения к тест-клиенту, но не заставляет определять их всегда при использовании пользователя с паролем. Если в параметре --testclient пароль не задан, то используется пароль из параметра --db-pwd.

BarinovIN avatar Dec 21 '21 14:12 BarinovIN