Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Продолжение популяризировать тестирование на платформе 1С:Предприятие; переходим к практическому применению системы тестирования.

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

Система была разработана и используется в конфигурациях платформы 8.1 и неуправляемой платформы 8.2. Чтобы использовать режим внешней обработки в управляемых конфигурациях, необходимо переписать весь интерфейс или изменить параметры конфигурации.

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

Много фотографий.

Определившись с версией платформы, и при необходимости настроив тестируемую конфигурацию( ТК ) для запуска неконтролируемой внешней обработки создаём серверную информационную базу ( БЫТЬ ) от конфигурации на той же версии платформы, что и ТК .

Прежде чем приступить к вводу тестов, необходимо настроить информационную базу.

БЫТЬ .

Для этого вам необходимо создать необходимую конфигурацию пользователей:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

И дадим одному из них права Администратора:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Затем запускаем базу данных в режиме Enterprise, авторизуемся под администратором и запускаем встроенную обработку Настройки :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Для хранения тестов различной конфигурации используется концепция Проект .

Несвязанные конфигурации следует тестировать в разных проектах.

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

Версия конфигурация этого Проект .

Добавьте свой проект:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Поля Подключение к информационной безопасности с тестами И Путь обработки теста используются для выполнения автоматического тестирования.

Сейчас мы не будем их заполнять; для ввода и запуска тестов вручную достаточно наличия проекта в базе данных БЫТЬ .

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

Поэтому давайте создадим актуальную версию вашего ТК .

Версия берется из свойств конфигурации:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Добавляем версию:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

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

Все дополнительные поля оставляем пустыми, сохраняем созданную версию и сохраняем проект. нажать на кнопку Дальше :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

Нажмите еще раз Дальше :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

Заполним полное имя текущего пользователя и выберем для него проект по умолчанию:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

Сохраните пользователя и нажмите кнопку Дальше :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Добавьте контактную информацию текущего пользователя:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

нажать на кнопку Дальше , у нас есть форма для заполнения констант:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Здесь вы указываете параметры отправки сформированных писем с результатами автоматического тестирования.

Пропустите этот шаг и нажмите еще раз.

Дальше :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

Оставьте пока без изменений, нажмите Готовый .

На данный момент мы создали один проект, в нем создана одна версия текущего ТК , все готово для добавления и запуска тестов.

Давайте запустим ТК в режиме Enterprise и открыть внешнюю обработку ( В ) ( В находится в вышеуказанном конфигурации БЫТЬ , называется Тестирование , его необходимо выгрузить из конфигурации в виде внешней обработки):

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

В результате появится основная форма для работы с тестами:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Слева находится список групп, на которые разбиты тесты.

Добавим новую группу, в которой мы будем создавать наши новые тесты:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Создадим новый тест в выбранной группе.

Например, я создал общий модуль под названием Тесты и добавил туда функцию экспорта:

Добавление функции (Аргумент значения1, Аргумент значения2) Эexport Вернуть Аргумент1 + Аргумент2; Конечнаяфункция
В названии теста я указал, что буду тестировать.

В поле Модуль Указываю расположение тестируемого метода - общий модуль Тесты :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

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

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

Затем скопируйте сигнатуру метода и вставьте ее в поле.

Заголовок метода :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Затем нажмите первую кнопку на панели инструментов над этим полем — Метод анализа :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

в результате поля заполняются Параметры И Результаты .

Заполняем входящие значения аргументов:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Готовый.

Теперь вы можете запустить тест для подсчета результатов, нажав на вторую кнопку (зеленая стрелка) Подсчет результатов и любуемся результатом:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Тест сработал корректно - запомните результат как стандарт, нажав третью кнопку Запомните результаты как справку :

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

Далее сохраняем нашу работу в тестовую базу данных:

Тестирование На Платформе 1С:предприятие 8. Практическая Часть

В принципе, это все.

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

Куча полей До и после выполнения, исполняемый код и т.д. были описаны в предыдущей статье.

Вы можете поэкспериментировать.

Бинарные файлы в настоящее время размещены на GitHub .

Если кто-то хочет улучшить его и исправить ошибки, поделитесь своей работой с сообществом.

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

Загрузка/загрузка конфигурации в xml реализована только в 8.3, пожалуй, это единственный нормальный способ, но есть конфигурации для 8.1 и 8.2, которые тоже нужно тестировать.

Так что пока пусть будет так GitHub , если будет реальная необходимость, подумаем.

Код распространяется под лицензией GPLv2, т.е.

— Публикуйте свои изменения в коде, если вы его используете.

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

— Рефакторинг кода.

Код не идеален; где-то используются костыли и другие дурно пахнущие конструкции.

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

— Разграничить права доступа по проектам.

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

В идеале было бы создать полноценную систему ролей — прав на добавление теста, на запуск группы тестов и т.д. — Преобразование форм в управляемые.

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

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

— Разделите тестовый репозиторий и среду автоматического тестирования на две конфигурации, это даст возможность использовать любую версию платформы для тестового репозитория и перенести автоматическое тестирование на другой компьютер.

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

— Доработка функционала и улучшение интерфейса.

Теги: #1с предприятие 8 #тестирование #тестирование ИТ-систем

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2005-08-02 16:57:28
Баллов опыта: 582
Всего постов на сайте: 7
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.