Много тестовых баз 1С и много разработчиков. Как работать, чтобы не запутаться

28.06.24

Разработка - Тестирование QA

Иногда возникают ситуации, когда надо развернуть тестовую базу клиента / свою на серверах Windows или Linux. Тестовые базы могут понадобиться в разных ситуациях: у клиента ошибка, на нашей базе она не воспроизводится, реализуем новый функционал и хотелось бы протестировать на Linux и т.д. А теперь представим, что это все на потоке. Что тестовых баз 1С не одна, а 20-30. И получаем проблему, что непонятно, занята она сейчас кем-то или нет. Предлагаю вариант решения этой проблемы.

В чем проблема?

Иногда возникают ситуации, когда надо развернуть тестовую базу клиента / свою на серверах Windows или Linux. Тестовые базы могут понадобиться в разных ситуациях: у клиента ошибка, на нашей базе она не воспроизводится, реализуем новый функционал и хотелось бы протестировать на Linux и т.д.
А теперь представим, что это все на потоке. Что тестовых баз 1С не одна, а 20-30. И получаем проблему, что непонятно, занята она сейчас кем-то или нет.

И тут начинается:

1. База есть, названа test34214, но непонятно, используется она сейчас кем-то или нет.
2. Вопрос в зал / в TG: ребята, а кто-то использует сейчас базу test34214?
3. Тишина.
4. Начинаем работать и через 2 дня получаем от коллеги: "Ой, а мне нужна была эта база. Кто ее затер?"

Суть, я думаю, понятна. Непонятно, как эту проблему решать...

 

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

Имеем много разработчиков и необходимость их взаимодействия с тестовыми базами 1С. При этом:

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

 

Варианты решения

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

Экселька

Можно завести файл Excel и в ней вести учет, кто и какую базу использует в данный момент. Нужна база? Отлично, регистрируй ее в файле, сроки, сколько ты с ней будешь работать, и вперед. Баз будет куча и нужно, чтобы кто-то постоянно удалял старые базы, ну или поработал и удалил.

Автоматизация

Пишем скрипт на OneScript / Power Shell и база развернулась, загрузилась, через время удалилась. Минус, разные базы могут быть нужны на разный срок. Какая-то на день, какая-то на месяц. Да и не все можно автоматизировать так, чтобы работало на все случаи жизни.

 

Как мы работаем с тестовыми базами 1С

Наш алгоритм универсален и подходит даже если тестовых серверов у нас не один, а несколько.

Подготовительный этап

На каждом тестовом сервере создаем базы по порядку:

  • test1
  • test2
  • test3
  • ...

Столько, сколько нужно. Это может быть 20, 30, 100 баз 1С. Каких-то других баз мы создавать и разворачивать не будем. Это общие базы, которые будут использоваться всеми.

Разработчику нужна тестовая база 1С

Алгоритм следующий.

  1. Берем первую попавшуюся тестовую базу 1С. Например, test1 и пытаемся ее открыть в режиме предприятия, предварительно очистив дополнительные параметры запуска:
    Очищаем параметры запуска
    Если появится окно ввода логина и пароля, то пробуем пользователя Администратор и пустой пароль. Второй вариант - открываем консоль кластера серверов и смотрим, в какой базе нет блокировки или она просрочена.
  2. Если база запустилась без предупреждений, то мы можем ее занять. Если появилось окно с сообщением, что база заблокирована, то берем следующую базу test2 и так пока не найдем свободную.
  3. Открываем консоль кластера 1С и блокируем базу для запуска другими, указывая время, на сколько мы занимаем базу. Время указывать обязательно. Если боитесь, что не успеете все протестировать, поставьте время с запасом, скажем, на 5 дней вперед. Также указываем, кто занял и на какое время.
    Блокируем базу
    В пояснении сообщения укажите, до какого вы планируете работать, чтобы можно было другим оценить время (мало ли, вдруг все базы будут заняты). Дату указывать обязательно. Не хватает времени или подходит к концу, увеличьте в свойствах базы.
  4. В стартере 1С указываем код блокировки для занятой базы, чтобы с ней можно было работать:

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

 

Алгоритм освобождения занятой базы

  1. После окончания работ с тестовой базой необходимо пойти одним из путей на выбор:
    • Снять пароль с пользователя Администратор (если он есть). При этом проверить, что мы можем войти в эту базу. Если пользователя Администратор в базе нет, то можно его создать с пустым паролем и полными правами. И убрать параметры блокировки, если срок блокировки базы не вышел.
    • Очистить базу и сделать ее пустой. Тогда в базу вообще можно зайти без запроса логина и пароля.
    Важно! Это необходимо сделать для того, чтобы тот, кто после нас попытается открыть эту тестовую базу, не ломал голову какой пароль у пользователя и легко смог зайти либо с пользователем Администратор, либо вообще без пользователя.
  2. Снять блокировку доступа в консоли администрирования 1С (можно просто снять галочку, что блокировка включена). После этого шага считается, что вы уже не работаете с этой базой и эта база вам не нужна. Следующий пользователь может эту базу занять.
  3. Если в освобождаемой базе остались нужные данные, то сделайте ее копию для клиента, во избежания перезаписи после снятия блокировки.

 

Заключение

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

Соберитесь с командой и обсудите алгоритм работы с тестовыми базами 1С. За основу возьмите наш алгоритм или доработайте его.

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

разработка программирование тестовые базы

См. также

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.16.115.

2220 руб.

04.07.2022    7467    32    1    

25

Тестирование QA DevOps и автоматизация разработки Программист Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.144.49.

1728 руб.

20.01.2022    7069    17    0    

11

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Набор универсальных подсценариев для заполнения форм типовых объектов справочников и документов конфигураций ERP 2.5 и КА 2.5. Сценарии представляют собой feature-файлы для vanessa-automation с тегом @exportscenarios. Используются для разработки функциональных сценариев.

1500 руб.

26.01.2023    3438    6    0    

3

Тестирование QA Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка с простым и понятным интерфейсом позволяет выполнить нагрузочное тестирование системы: появляется возможность понять, сколько документов записывается / проводится группой пользователей в текущей информационной системе и сколько будет проводиться / записываться в другой информационной системе. Таким образом, можно оценить потенциальный прирост производительности от перехода в другую систему по сравнению с текущей информационной системой (переход на новый сервер, переход от файловой базы к серверной и т.д.). Автоматизация нагрузочного тестирования базы 1С.

5 стартмани

08.04.2024    1488    3    user1527257    1    

4

Тестирование QA Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье мы рассмотрим имитацию действий пользователя 1С и протоколирование тестов в инструменте 1С: Тестировщик.

14.03.2024    1755    Koder_Line    1    

11

Тестирование QA Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

1С: Тестировщик позволяет создавать и модифицировать тесты для проверки функциональности программного обеспечения, гарантируя надежность и стабильность приложений. В данной статье будет рассмотрен процесс написания и модификации тестов в конфигурации системы 1С: Тестировщик, а также основные принципы и методики, которые помогут тестировщикам эффективно использовать этот инструмент для обеспечения качества программных продуктов.

23.01.2024    981    Koder_Line    1    

4

Тестирование QA Программист Абонемент ($m)

Заметка о том, как использовать Allure с self-hosted Gitlab, чтобы быстро и с минимальными усилиями получить удобные отчёты о результатах тестирования и навигацию внутри них.

1 стартмани

11.01.2024    3290    comptr    4    

27

Статистика базы данных Инструментарий разработчика Тестирование QA Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

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

3 стартмани

29.12.2023    1450    10    RustIG    5    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Azamatex 13 28.06.24 12:29 Сейчас в теме
мы просто даем имя базы такое чтобы было понятно что за исходная база и чья это копия (три буквы от фамилии и буква от имени).
2. Diversus 2322 28.06.24 12:31 Сейчас в теме
(1)
мы просто даем имя базы такое чтобы было понятно что за исходная база и чья это копия (три буквы от фамилии и буква от имени).


Ну это же потом надо вычищать это все. Плюс место на сервере не резиновое, плюс не понятно нужна потом база или нет.
10. DrAku1a 1729 30.06.24 05:00 Сейчас в теме
Вообще, имя базы может быть достаточно длинным.
Вот мой подход:
1. Добавить фамилию к имени базы (в начале), по договоренности может быть заменено на "Никнейм"
2. Если с базой постоянно ведется работа - то более ничего не добавляем (Фамилия + ИмяБазы)
3. В имени временной базы добавляется дата создания
4. Базы-однодневки называть с окончанием "УдалиМеня"
5. Демо-базы при именовании заканчиваются на "Demo"
6. Базы вычищаем "вручную" (скриптов нет), но можно автоматизировать - нужны скрипты...
7. Перед удалением отработанной базы - делать её бекап на "холодный диск" (лучше средствами 1С, т.к. размер меньше).

В теории, ещё можно мониторить журнал регистрации (когда последний раз заходили в базу, что делали), чтобы сразу определять где не было активности долгое время.
3. SerVer1C 784 28.06.24 13:03 Сейчас в теме
Гораздо проще заюзать докер в этой теме: разраб сам поднимет нужный контур (с нужной платформой 1с), а по ненадобности базы сам остановит запущенный контейнер.
4. Diversus 2322 28.06.24 13:04 Сейчас в теме
(3) В этом случае будет проблема с лицензиями 1С.
5. SerVer1C 784 28.06.24 13:05 Сейчас в теме
(4) С 23-й платформы доступна community лицензия.
6. Diversus 2322 28.06.24 13:13 Сейчас в теме
(5) Почитал, действительно будет удобно для отладки. А активация не потеряется в докер контейнере? Есть опыт успешного разворачивания с Community лицензией в докере?
7. SerVer1C 784 28.06.24 13:16 Сейчас в теме
(6) community лицензия на лету получается, нужен только доступ в инет + акк на developer.1c.ru (можно 5 лицензий одновременно использовать).
8. vladimir-89 25 28.06.24 19:08 Сейчас в теме
(7) community-лицензия сработает с базами для личного использования, с промышленными лицензиями действительно могут быть проблемы. Не берусь утверждать, просто предполагаю.
9. abryazgin 2 29.06.24 19:41 Сейчас в теме
У нас создаются базы с порядковым номером с запасом (есть базы на hdd и ssd).
Внутри компании прописан алгоритм получения базы для работы.
Фиксируется отв владелец базы.
Раз в квартал проводится опрос и чистка более не нужных баз.
Алгоритм не очень сложный, но рабочий.
Автоматизация действий на уровне отв менеджера за базы.
11. artemusII 36 01.07.24 21:19 Сейчас в теме
Идея хорошая, но будет неудобна для тех, у кого 100+ тестовых баз. Вдруг первые 95 буду заняты. Таким образом нужно будет убить минимум пару часов (в среднем 1,5-2 минуты на попытку входа, ожидания, опечатки), чтобы найти свободную. Для небольшого количества норм.
12. Diversus 2322 01.07.24 21:53 Сейчас в теме
(11) Можно открыть консоль кластера и там смотреть. Но в целом, да, трудновато когда их прям много-много
Оставьте свое сообщение