Много тестовых баз 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С. За основу возьмите наш алгоритм или доработайте его.

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

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

См. также

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

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

2160 руб.

05.08.2024    1272    12    1    

7

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

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

2400 руб.

04.07.2022    8364    38    1    

29

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

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

1800 руб.

20.01.2022    7779    19    0    

13

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1306    capitan    0    

0

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    2768    leemuar    8    

22

Тестирование QA Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

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

30.08.2024    1284    Scorpion4eg    6    

7

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

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

5 стартмани

08.04.2024    1805    5    user1527257    1    

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


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

В теории, ещё можно мониторить журнал регистрации (когда последний раз заходили в базу, что делали), чтобы сразу определять где не было активности долгое время.
3. SerVer1C 815 28.06.24 13:03 Сейчас в теме
Гораздо проще заюзать докер в этой теме: разраб сам поднимет нужный контур (с нужной платформой 1с), а по ненадобности базы сам остановит запущенный контейнер.
4. Diversus 2329 28.06.24 13:04 Сейчас в теме
(3) В этом случае будет проблема с лицензиями 1С.
5. SerVer1C 815 28.06.24 13:05 Сейчас в теме
(4) С 23-й платформы доступна community лицензия.
6. Diversus 2329 28.06.24 13:13 Сейчас в теме
(5) Почитал, действительно будет удобно для отладки. А активация не потеряется в докер контейнере? Есть опыт успешного разворачивания с Community лицензией в докере?
7. SerVer1C 815 28.06.24 13:16 Сейчас в теме
(6) community лицензия на лету получается, нужен только доступ в инет + акк на developer.1c.ru (можно 5 лицензий одновременно использовать).
8. vladimir-89 26 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 2329 01.07.24 21:53 Сейчас в теме
(11) Можно открыть консоль кластера и там смотреть. Но в целом, да, трудновато когда их прям много-много
Оставьте свое сообщение