На тестовом сервере много баз и хранилищ, как указать Тестеру, какую базу прогонять и какие обновления в неё загружать?

Используйте механизм версий и логику программного кода сценария. Такие методы как УстановитьПриложение / УстановитьВерсию / МояВерсия могут быть использованы для организации условий запуска и обновления информационных баз. Полный пример будет подготовлен отдельной публикацией.

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

Для этого нужно обратить внимание на два ключевых момента:

  1. Закрытие приложений при работе теста.
  2. Закрытие приложений перед началом тестирования.

Закрытие приложений при работе теста

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

// Отключаемся от текущей тестируемой сессии
Отключить ();

// Где-то в структуре данных у вас должен быть порт для
// запуска новой тестируемой сессии
порт = Окружение.ПортУтверждающегоЗаявки;

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

// Здесь мы уверены, что предыдущая сессия на этом порту завершена
// и запуск новой сессии будет занимать ожидаемый порт
// и ожидаемо контролироваться сценарием
п = Вызвать ( "Тестер.Запустить.Параметры");
п.Пользователь = "Петров";
п.База = "Бухгалтерия предприятия";
п.Порт = порт;
Вызвать ( "Тестер.Запустить", п );

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

Закрытие приложений перед началом тестирования

Закрывайте тестируемые приложения перед запуском тестов и до обновления конфигурации.

Так нужно делать по нескольким причинам:

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

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

Отключение можно организовать следующим образом:

с = СвойстваПриложения.Port;
до = 5;
для порт = с по c + до цикл
    попытка
        Подключить ( , порт );
        Отключить ( истина );
    исключение
    конецпопытки;
конеццикла;

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

Как исключить тесты разрабатываемого функционала от ночного прогона?

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

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

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

Вариант 3. Использовать децентрализованное хранение сценариев. В этом варианте, мы можете создать создать свою копию тестов выгружать/загружать изменения в общее хранилище. Подробнее см. здесь.

Как запустить тестирование из командной строки?

Для запуска тестирования из командной строки, необходимо передать исполняемому файлу параметры запуска с использованием ключа /C.

Подробнее о параметрах запуска с примерами, см. ПараметрыЗапуска.

Какой самый простой способ группового запуска сценариев по расписанию?

Организация полноценного CI/CD реализуется в Тестере специальным набором общих тест-методов, но что если вам нужно максимально быстро организовать запуск тестов по расписанию, где-то на виртуальной машине? Для этого, можно создать тест-метод, который будет внутри себя содержать некий список сценариев, и выполнять их один за другим.

Вот пример такого теста:

тесты = новый Массив();
тесты.Добавить("полный.путь.к.тесту1");
тесты.Добавить("полный.путь.к.тесту2");
тесты.Добавить("полный.путь.к.тесту3");
запустить(тесты);

Процедура запустить(Тесты)

    для каждого тест из Тесты цикл
        попытка
            Test.Start(тест);
        исключение
            попытка
                ЗакрытьВсе();
            исключение
            конецпопытки;
        конецпопытки;
    конеццикла;

КонецПроцедуры

Созданный тест с начинкой выше, затем можно запускать по расписанию, подробнее см. Механизм заданий.