Атака сервера кнопонажималкой

Публикация № 1182048

Разработка - Инструментарий разработчика

Чтобы убедиться, что продукт выдержит планируемую нагрузку, необходимо провести нагрузочное тестирование – написать сценарии пользовательских действий и запустить их в несколько потоков, чтобы заранее найти проблемы в бизнес-логике и «узкие места». О том, как упростить написание сценариев тестирования для конфигурации Тест-центр с помощью фреймворка Vanessa Automation на конференции Infostart Event 2019 Inception рассказал ведущий программист компании «ПервыйБИТ» Никита Грызлов.

Здравствуйте, коллеги! 

 

 

Обратился как-то раз к нам в компанию заказчик, для которого мы разрабатывали довольно крупное решение с большим количеством интегрированных модулей, с таким простым вопросом: «Вы сейчас разрабатываете, код пишете, даже на прод все это дело периодически подгружается. У нас летом вырастет нагрузка. Оно не упадет?»

Мы такие: «Да не, не должно».

Он: «Точно? А можете убедиться и посмотреть? Вы уверены, что оно выдержит? Что все будет хорошо?»

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

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

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

 

Тестирование серверной и клиентской нагрузки

 

 

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

  • Код, который изначально серверный – регламентные задания, проведение документов, сложные обработки. 

  • И код, который начинает свою жизнь на клиенте – формы, обработчики кнопок, динамические списки и т.д.

 

 

Есть такой термин – «технопорно». Кто-нибудь знает, что это такое? Это фотографии серверных стоек с красиво уложенными кабелями – сетевыми, питания. Примерно то, что на картинке. 

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

 

 

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

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

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

 

Нагрузочное тестирование GUI

 

 

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

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

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

Замеры времени по ключевым операциям, по APDEX тоже будут максимально приближены к тому, что мы увидим впоследствии на продуктиве.

 

Инструменты тестирования

 

Тест-центр

 

 

Для проведения нагрузочного тестирования нам понадобятся инструменты. Один из инструментов, предлагаемый вендором, компанией «1С» – Тест-центр. Он входит в состав «Корпоративного инструментального пакета» – там, где ЦУП, ЦКК и несколько других компонентов. С точки зрения своей реализации он выглядит как подсистема, которая встраивается к вам в конфигурацию и содержит несколько справочников, регистров, общих модулей, которые помогают проводить нагрузочное тестирование.

 

 

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

  • Первый компонент – это обработки. Это либо внешние обработки, либо обработки, встроенные в конфигурацию, содержащие код, который действительно нагружает вашу систему, создает документы, формирует отчеты и т.д.

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

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

 

 

Запуск сценария тестирования производится таким образом:

  • на компьютерах, на которых будут запускаться тесты, нулевым шагом поднимается такая штука как агент. Это – специальный режим запуска 1С:Предприятие с обработкой из состава Тест-центра. 

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

  • Агенты уже запускают нужное количество так называемых ВРМ (виртуальное рабочее место) – это тоже отдельный сеанс 1С, запущенный с отдельной обработкой. И именно ВРМ уже будет исполнять ту роль, которую ему назначит агент.

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

 

Vanessa Automation

 

 

Ок. Кто знает, что изображено на слайде? За 6 лет никто ни разу не слышал про Vanessa Automation, Vanessa Behavior, Vanessa ADD и т.д.? 

Vanessa Automation – это фреймворк для BDD. Это – аббревиатура, которая переводится, как «Разработка через поведение». На вход этой обработке мы подаем сценарий на специальном языке Gherkin, и она каждый шаг этого сценария выполняет. Это не придумка чисто для 1С, это порт технологии из другого мира, но, как обычно, с особенностями. 

 

 

Фреймворк Vanessa Automation базируется на двух составляющих. 

  • Первая – это язык Gherkin, формализованный язык описания требований, где каждая строчка, в принципе, что-то значит. Сам язык очень простой. Когда мы складываем 2+2, тогда результат равен 4. Это уже сценарий на Gherkin. Просто нужно грамотно разделить по строчкам то, что вы делаете, и то, что хотите проверить, вставив ключевые слова. И все, сценарий готов.

  • Вторая составляющая, на которой базируется Vanessa Automation в 1С – это «кнопконажималка». Вообще, по классике, авторы BDD говорят о том, что не надо тестировать интерфейс. Но мы 1С-ники, у нас все не с той стороны. «Кнопконажималка» – это механизм, который базируется на процессе автоматизированного тестирования, появившемся в платформе 8.3, он предоставляет простые библиотечные шаги для того, чтобы нажимать на кнопки и получать значения полей.

 

 

У Vanessa Automation есть два режима поставки. 

  • В виде россыпи файлов, где есть сама обработка, библиотеки, и служебные конфигурационные файлы.

  • И в виде единой скомпилированной обработки (так называемая Single-поставка)

Для целей тестирования вариант поставки в виде единой обработки оказался особенно удобен.

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

 

 

Работа с Vanessa Automation осуществляется более линейно, чем в Тест-центре. У нас есть сценарий в виде файла с расширением feature, написанный на языке Gherkin (так называемый Feature-файл). Он загружается в менеджер тестирования, в котором открыта Vanessa Automation – она запускает клиент тестирования и передает ему команды по нажатию кнопок.

 

Как научить Тест-центр запускать Vanessa Automation?

 

 

Ок. Тест-центр – это хороший инструмент. И Vanessa Automation тоже хороший инструмент. Каким же образом нам заставить их работать вместе? Как же нам научить Тест-центр запускать Vanessa Automation?

 

 

Вернемся к структуре Тест-центра. В нагрузочном тесте мы работаем на уровне ВРМ, на самом низком уровне. А значит, именно там мы можем попытаться вмешаться, вставить какую-то логику и запустить Vanessa Automation.

 

 

Получается, что нам на уровне ВРМ (виртуального рабочего места) нужно запустить Vanessa Automation, которая запустит еще один клиент тестирования и наше трехуровневое дерево с потоком управления превратится в четырехуровневое – появится еще один клиент.

Как это сделать?

 

 

Во-первых, нам нужно запустить ВРМ в режиме тест-менеджера. У запускаемого из Тест-центра клиента есть много разных настроек. Самая главная – это тип клиента (тонкий, толстый, серверная база, файловая).

 

 

Но, помимо этого, есть секция дополнительных настроек, куда можно передать параметры запуска исполняемого файла 1С. Добавляем параметр /TESTMANAGER – все, мы получили ВРМ, работающее в режиме тест-менеджера.

 

 

ВРМ теперь может запуститься в режиме менеджера тестирования и управлять клиентами. Но как оно об этом узнает? ВРМ запускает роль – обработку с настройками. На скриншоте есть первая версия обработки, которую я подготовил для нагрузочного тестирования буквально с двумя реквизитами. 

Первый реквизит – это ссылка на обработку Vanessa Automation Single, помещенную в справочник. 

А второй реквизит – это путь к Feature-файлу, к тому сценарию, который будет запускаться именно в Vanessa Automation. Здесь он указан, как абсолютный, но при желании можно доработать и хранить его в базе. Так затрудняется отладка и доработка, но на финальном этапе разработки сценариев их уже можно поместить в базу. В любом случае допилить все это несложно.

 

Как написать нагрузочный тест?

 

 

С инфраструктурой вроде все понятно – кто, кого, в какой момент должен запускать. Но как писать нагрузочный тест?

Обычный линейный Gherkin здесь не справится. Многие, работавшие с Vanessa Automation либо с Vanesa ADD, знают, что там поддерживаются такие штуки, как группировки шагов, вызов экспортных сценариев, передача параметров в сценарии и прочие штуки, которые к ванильному Gherkin вообще никакого отношения не имеют. Это все по части Turbo-Gherkin – такого расширения языка Gherkin, которое применяется в данном фреймворке тестирования.

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

 

 

На данном слайде отмечены красным две возможности Turbo-Gherkin – это циклы и переменные контекста. 

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

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

 

 

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

Здесь применяется шаг условия с выполнением произвольного кода прямо на языке 1С – ЗначениеЗаполнено($$Специальности$$), где $$Специальности$$ – это обозначение переменной из сохраняемого контекста.

То есть, если значение специальности у нас заполнено, тогда выполняются шаги, отбитые внутри табуляцией.

 

 

Если все это соединить, то мы можем получить универсальную и гибкую фичу, которую можно один раз написать и впоследствии легко параметризировать на уровне роли – уже ничего не программируя и не открывая Visual Studio Code.

И можно обходить всякие неудобные интерфейсные моменты, типа деревьев значений, которые нужно открывать рекурсивно. Можно использовать какие-то заранее заданные отборы и условиями, циклами все это дело на форме устанавливать. Формы бывают сложные, вы знаете. И в линейном Gherkin не все вещи можно стандартным образом «накликать».

 

Шаблон тестовой обработки

 

 

А что там по поводу задания параметров? Как их задавать извне? Где хранить? Как передавать?

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

На скриншоте я выделил две области:

  • Наверху показаны настройки работы с Vanessa Automation – по цикличному запуску сценариев, по паузам, по работе с тест-клиентом. В целом все это берет на себя ядро обработки, вам все это дополнительно кодить не нужно. Если вы возьмете этот шаблон, добавите в него любой файл сценария, он просто возьмет и заработает.

  • И второе – это секция дополнительных переменных внизу. Это табличная часть, каждая строка которой попадает в контекст, который использует Vanessa Automation для хранения переменных. Из коробки все значения тут строковые, но, используя в качестве разделителя «;», вы можете сделать представленную строку массивом, сохранить массив в контексте и даже его перемешать. То есть, это тоже поможет вам добавить случайности в ваши сценарии.

 

 

Также обработка содержит полезные методы по работе с Тест-центром в модуле формы. Это несколько точек расширения, в которые может «врезаться» разработчик нагрузочного теста и что-то дополнительно сконфигурировать. На скриншоте изображен шаг подготовки Vanessa Automation. Как вы видите, тут код простой. Мы просто настраиваем форму – объект, который лежит в этой форме. И если вдруг в новых релизах Vanessa Automation появятся какие-то новые особенности, которые стоит дополнительно переконфигурировать, то после добавления пары строк все заработает.

 

Как решить проблему запуска нескольких менеджеров тестирования на одном компьютере?

 

 

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

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

Решается все просто. Есть в Vanessa Automation такая штука, как настройка диапазона портов. Это – те порты, на которых будут запускаться тест-клиенты. По умолчанию, они все запускаются на порту 48000. Поэтому и происходит вот этот перехлест, что все тест-менеджеры начинают ломиться на один порт и друг другу мешать.

Шаблон тестовой обработки берет на себя задачу расчета нужного диапазона портов для каждого отдельного ВРМ. Вы можете запустить нагрузочный тест на 10-50 сеансах на одной машине, и для каждого сеанса эта настройка будет отличаться. Таким образом, у вас будет достаточно стабильная работа. И, по крайней мере, тест-менеджеры с тест-клиентами драться не будут.

У меня сценарии были относительно простые. В рамках одной фичи на Gherkin запускался один тест-клиент. И диапазона в пять портов для первичного запуска тест-клиента мне хватало. Правда, у тест-менеджера не всегда получалось установить соединение с первого раза, но это уже особенности платформы.

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

Если вы будете запускать в рамках фичи несколько разных тест-клиентов, например, тестировать под разными ролями, то просто в шаблоне поменяйте 5 на 10, например. И диапазоны портов пересчитаются.

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

И третий момент, который помогает не драться за клиентов – это ограничение количества клиентов 1С, которое вы запускаете в рамках одного сеанса операционной системы. Если вы в одном сеансе операционной системы запускаете 50 клиентов 1С, то это будет работать хуже и менее производительно, чем если вы запустите 10 сеансов операционной системы, и в каждом из них по 5 клиентов 1С. Тут уже играет роль взаимодействие 1С с самой операционной системой, Vanessa Automation здесь не при чем. Но такая особенность тоже есть, про нее надо помнить. Поэтому лучше разносить агенты по разным машинам или по разным RDP-сессиям на вашем терминальном сервере.

 

С чем пришлось столкнуться

 

 

При написании нагрузочного теста я столкнулся с определенными трудностями. Классик говорил: «Все врут». Особенно врет документация.

Оба продукта постоянно дорабатываются. И иногда можно много времени потратить на очень простых вещах. На Тест-центре, на котором я работал (версия 2.1.3) можно наткнуться на не совсем верную работу Тест-центра с регистром «Замер времени». В регистр ложатся данные в UTC±0, а Тест-центр читает их со смещением. Поэтому вы запускаете тест, получаете отчет, но в этом отчете ничего не отображается, потому что банально, диапазон времени запуска и окончания прогона сценария не попал в диапазон из регистра.

Также функция НомерВРМ() – ты находишь эту функцию в конфигураторе, у тебя открыта 1С в режиме предприятия, на ней написано ВРМ №13. И ты ожидаешь, что вызовешь функцию НомерВРМ() и получишь 13. Ты ее вызываешь, получаешь 2. Читаешь описание к функции, на ней написано: «Она возвращает уникальный номер ВРМ». Запускаешь другую ВРМ – она возвращает 3. Ок, ладно. А потом запускаешь ее еще раз, но под другой ролью в терминах Тест-центра, и она снова возвращает 2. Два разных ВРМ с одинаковым номером ВРМ? Что происходит? 

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

В шаблоне обработки есть функция, которая возвращает действительно уникальный номер ВРМ, который у вас повторяться не будет.

 

Процесс написания нагрузочного теста

 

 

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

Три шага.

  • Первый шаг не отличается от привычного сценария работы с Vanessa Automation. Мы подключаем клиент тестирования, кликаем кнопки и на выходе получаем текст фичи. 

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

  • И третий шаг – настройки, которые мы выделили для подстановки в текст сценария на Gherkin, нужно перенести в роль, которая у нас в Тест-центре.

 

Как анализировать результаты

 

 

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

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

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

 

 

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

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

 

Заключение

 

 

Вместо итогов я хочу сказать о том, что тесты – это хорошо. Я думаю, несогласных не будет. Тесты бывают разные, бывают функциональные тесты, юнит-тесты, перформанс-тесты (это как раз часть нагрузочных тестов).

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

Либо, в случае, если у вас большая база, много операций, 50-100-150 клиентов, и вы начинаете ловить блокировки, ожидания, дедлоки, что-то отваливается и т.д. Без нагрузочных тестов вы сможете об этом узнать только от заказчика или от бухгалтера, который будет вам звонить и гневно ругаться.

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

https://github.com/nixel2007/tc-epf-template

По ссылке находится репозиторий, куда я выложил шаблон тестовой обработки, которая была на скриншотах. Вы можете его скачать, попробовать запустить у себя. Там же есть шаги фич по включению и отключению замеров. Там вариант для БСП 3.0. В комментариях и в Readme описан вариант включения замеров для БСП 2.2. Если у вас используется какая-то другая версия, возможно, их придется чуть-чуть подтюнить, но напишите, подскажу, на что нужно обратить внимание.

 

****************

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Выбрать мероприятие

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. sapervodichka 4260 20.01.20 13:44 Сейчас в теме
Также будут полезны:
https://infostart.ru/public/1169127/ тесты нагрузочные
https://infostart.ru/public/1056811/ проверка доработок
samir_27@list.ru; marylin; karpik666; +3 Ответить
2. Dach 306 21.01.20 09:46 Сейчас в теме
Все больше и больше статей про VA, V ADD

Может мне кто-нибудь простыми словами объяснить?

1. Почему именно Vanessa? Почему не Дженифер или не Лоуренс? Или Памела, на худой конец? )))
2. Чем все эти Ванессы отличаются друг от друга? Чем принципиально VA отличается от V ADD?
3. user1166203 21.01.20 09:58 Сейчас в теме
5. Dach 306 21.01.20 10:02 Сейчас в теме
(3)
One S


игра слов, звучания? ммм, ну ясно


(3)
Хозяевами


то есть, реально - принципиально разницы никакой? В какой момент пути "хозяев" разошлись, интересно
4. user1274438 21.01.20 10:01 Сейчас в теме
Капец.
О том, как упростить написание сценариев тестирования для конфигурации Тест-центр

Что уж там упрощать-то? Вообще элементарная вещь. Зачем туда еще иванесс каких-то тулить?
6. nixel 1016 21.01.20 11:01 Сейчас в теме
(4) гуи-тесты на голом тест-центре, используя родной апи платформы? ну такое.
7. user1274438 21.01.20 11:15 Сейчас в теме
(6) Воз и маленькая тележка тестов на голом тест-центре. Очень быстро и удобно. Когда надо - можно чуток допилить что, но не городить еще целую еванессу сверху.
Может, у вас в компании после одного ИТС- на троих и другие стандарты приняты. Но то такое.

P.S.
Хотя, когда ванесса сверху, тесты гораздо интереснее. Но другие.
triviumfan; +1 Ответить
9. Vladimir Litvinenko 2535 21.01.20 12:37 Сейчас в теме
(7) VA более точно эмулирует действия пользователя. Точнее даже сказать не эмулирует, а воспроизводит их. Кодом такое сделать сложнее.

Если у вас уже есть сценарные тесты для вашей системы, то можно использовать как основу именно их, а не писать заново всё то же самое, но кодом на 1С.

Идея то классная. И честно говоря больше хотелось бы не исключить VA из этой цепочки, а наоборот, исключить дорогой тест центр из КИП, заменив его внешним инструментом "оркестрации" для VA. Но вряд ли что-то такое появится в обозримом будущем ))
8. Vladimir Litvinenko 2535 21.01.20 12:27 Сейчас в теме
Какой отличный пример внешнего управления VA и работы с сохраняемым контекстом! Да ещё и с исходниками, которые можно брать за образец. Спасибо.

Пара методов прямо напрашиваются стать экспортными в составе модуля самой управляемой формы VA: ОбнулитьНастройкиVA() и установка значений переменных контекста извне.
10. grandr 22.01.20 09:33 Сейчас в теме
как представитель экономного заказчика:
учитывая зарплаты IT-специалистов и лицензий, не дешевле ли взять неквалифицированную человеческую силу тыкать в кнопки по скриптам с бумажки?
11. nixel 1016 22.01.20 09:40 Сейчас в теме
(10) не совсем понимаю, причём тут лицензии. Если вы проводите нагрузочное тестирование, то что в автоматическом режиме, что в ручном, лицензии вам потребуются в любом случае. Правда в случае gui-тестирования их понадобится в два раза больше, да.

Если речь просто про стоимость автотестов против ручного труда - автотесты дешевле.
12. Pr-Mex 130 22.01.20 15:38 Сейчас в теме
13. buganov 157 18.02.20 11:05 Сейчас в теме
Интересно, а ванесса с 8.2 дружит?
14. nixel 1016 18.02.20 11:20 Сейчас в теме
(13) если речь про платформу или режим совместимости - то да, дружит.
если про обычный интерфейс - дружит, но не работает сама кнопконажималка, т.к. это механизм платформы, появившийся в 8.3. Сам фича-плеер работает.
15. buganov 157 18.02.20 12:23 Сейчас в теме
(14)Да, платформа, управляемое приложение. Получается, полноценного функционального тестирования не получится?
16. nixel 1016 18.02.20 12:24 Сейчас в теме
(15) не получится GUI-тестирование. обычные BDD-сценарии никто не мешает писать :)
17. motkot 53 13.05.20 17:09 Сейчас в теме
Добрый день. Может у кого-то была подобная ситуация. За основу взяли обработку из статьи, немного доработали под свои нужды, за обработку огромное спасибо Никите! Проблема заключается в следующем: есть сценарий тест-центра, в строках (а их 3) которого указано количество запускаемых ВРМ по 1 и все работает отлично. Если количество увеличить хотя бы до 2, то тест-менеджеры запускаются, тест-клиенты тоже стартуют, фичи-файлы начинают выполнение, но выполнение прерывается с возвратом "Успешно завершено" на совершенно случайной строке фичи-файла, никакой закономерности. Порты тест-клиентов для всех ВРМ разные. Что можем упускать из вида?
18. nixel 1016 13.05.20 17:12 Сейчас в теме
(17) добрый. а в соседних сеансах при этом не возникает ошибок? там одна из галок взводит у текущего документа "тест" флаг "завершен с ошибкой", остальные ВРМ периодически проверяют этот флаг и завершают работу.
19. motkot 53 13.05.20 17:16 Сейчас в теме
(18) во всех "ошибок не было", что странно. причем сами фичи довольно простые, в стиле открыть окно, подождать, закрыть, перейти к строке в списке.
20. nixel 1016 13.05.20 17:21 Сейчас в теме
(19) хм... может тогда дело в доработках? :)
21. motkot 53 13.05.20 17:27 Сейчас в теме
(20) ну конечно такое исключать не могу, но почему тогда все работает при количестве 1?)) на самом деле, доработками просто добавили немного функционала по количеству циклов запуска. у меня еще есть подозрение на платформу и версию VA. попробую начать с более свежей VA.
22. motkot 53 13.05.20 17:33 Сейчас в теме
(20) и еще наблюдение. если в сценарии оставить одну строку, но указать количество клиентов 2, то тоже все работает прекрасно. видно проблема в одной физической машине и 6 клиентами.
Оставьте свое сообщение

См. также

Легкий способ обновления измененной конфигурации Промо

Инструментарий разработчика v8 Бесплатно (free)

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    24062    avk72    63    

Редактор схемы компоновки для тонкого клиента

Прочие инструменты разработчика v8 Бесплатно (free)

Аналог платформенного конструктора схемы компоновки данных для работы в тонком клиенте. Входит в состав набора "Универсальные инструменты 1С"

08.03.2021    2249    cprit    13    

Структура запроса (Infostart Toolkit)

Консоль запросов Прочие инструменты разработчика v8 v8::Запросы 1cv8.cf Бесплатно (free)

Описание механизма разбора запроса на части (дерево), используемого в IS Toolkit и Управляемой консоли отчетов

02.03.2021    1642    Evg-Lylyk    7    

Последний раз про срез последних (на каждую дату в запросе)

Инструментарий разработчика Практика программирования Консоль запросов Универсальные функции v8 v8::Запросы Бесплатно (free)

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

15.02.2021    4421    randomus    47    

Универсальная функция для программного выполнения СКД Промо

Инструментарий разработчика Универсальные функции v8::СКД 1cv8.cf Бесплатно (free)

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

20.05.2015    31057    dj_serega    18    

Отладка логики запроса в консоли запросов ИР

Консоль запросов v8 1cv8.cf Бесплатно (free)

Облегчаем поиск причины неожиданного результата запроса в консоли запросов из подсистемы "Инструменты разработчика" (ИР)

05.01.2021    5253    tormozit    8    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 4

EDT Бесплатно (free)

Сборка репозитория P2 на основе исходников плагина 1С:EDT для поставки пользователям.

27.12.2020    523    marmyshev    0    

Работа с СКД в продукте "Infostart Toolkit"

Прочие инструменты разработчика v8 v8::СКД Бесплатно (free)

Infostart Toolkit обладает большим количеством уникальных возможностей для работы с СКД – это анализ исполняемых текстов запросов, работа с внешними источниками в схеме СКД, получение данных в отладке и многое другое. Обо всех этих возможностях рассказал разработчик продукта Евгений Люлюк.

24.12.2020    2205    Evg-Lylyk    2    

Перевод интерфейса конфигурации с использованием программы 1С:Переводчик Промо

Инструментарий разработчика v8 Бесплатно (free)

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

09.02.2015    34284    boogie    21    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 3

EDT Бесплатно (free)

Описание процесса создания UI-плагина для EDT с Quick-Fix по проверке.

08.11.2020    709    marmyshev    0    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 2

EDT Бесплатно (free)

Описание процесса создания плагина для EDT по валидации с квикфиксом.

07.11.2020    1440    marmyshev    1    

Отладка в Infostart Toolkit

Консоль запросов Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

05.11.2020    3190    Evg-Lylyk    16    

Сервис обмена кодом Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Бывало так, что вам нужно быстро показать кому-то свой код, но опубликовать его негде, так как популярные сервисы просто не поддерживают раскраску кода 1С? Теперь решение есть!

26.06.2015    20692    Infactum    23    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 1

EDT Бесплатно (free)

Введение в разработку плагинов для 1С:EDT. Цель: показать, что плагины для 1С:EDT можно делать быстро и легко.

17.10.2020    3763    marmyshev    24    

Улучшенный конструктор запроса тонкого клиента (Infostart Toolkit)

Инструментарий разработчика Консоль запросов v8 1cv8.cf Бесплатно (free)

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

07.09.2020    4138    Evg-Lylyk    17    

Пробуем Снегопат (устанавливаем и настраиваем полнофункциональную триальную версию)

Снегопат, openconf v8 Бесплатно (free)

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

31.08.2020    9990    kuntashov    73    

1C:Enterprise Development tools (EDT) или кодим в Eclipse Промо

EDT v8 Бесплатно (free)

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

11.04.2015    78357    DitriX    297    

paste1c.ru - сервис для обмена кодом для 1С:Предприятия

Прочие инструменты разработчика v8 Бесплатно (free)

Paste1C.ru - сервис для обмена кодом для 1С:Предприятия c подсветкой синтаксиса и подсказками.

21.08.2020    6342    salexdv    48    

1С:EDT. Куда пинать, чтобы полетело?

EDT v8 УНФ Россия Бесплатно (free)

Работал в 1С Конфигуратор и решил перейти на 1С EDT. Не получилось сразу. Потребовалась модификация компьютера.

19.08.2020    5628    pa240775    33    

Снегопат – Dev или Ops?

Снегопат, openconf v8 Бесплатно (free)

Снегопат – программный комплекс, повышающий эффективность работы в конфигураторе 1С. О новом эволюционном этапе проекта, его возможностях и планах развития на митапе «DevOps в 1С» рассказал разработчик Снегопата, системный программист компании Инфостарт Александр Орефков.

17.08.2020    6036    orefkov    47    

Проставление большого количества галочек в активном окне винды Промо

Практика программирования Сервисные утилиты Инструментарий разработчика Россия Бесплатно (free)

Как проставить большое количество галочек подряд в любом окне винды

07.11.2010    30900    Boris-Leleko    9    

Динамический список, ключи записей. Нюансы

Инструментарий разработчика Практика программирования Конфигурирование 1С v8 Бесплатно (free)

Заметки об особенностях динамических списков с произвольным запросом и видом ключа, отличным от "Авто"

07.08.2020    3161    Yashazz    6    

Редактор HTML

Инструментарий разработчика Прочие инструменты разработчика v8 1cv8.cf Россия Бесплатно (free)

Инструмент из состава набора "Универсальные инструменты 1С" для быстрой адаптации html страниц для корректного отображения в Поле HTML документа

03.08.2020    2287    cprit    3    

Глобальное меню разработчика для управляемых форм

Инструментарий разработчика v8 v8::УФ 1cv8.cf Бесплатно (free)

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

03.08.2020    4517    tormozit    26    

TurboConf:Шаблоны - сервис для поиска и хранения фрагментов кода Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

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

13.08.2014    22711    m.bolsun    68    

Консоль кода и зачем она нужна

Прочие инструменты разработчика v8 Бесплатно (free)

Когда использовать, обзор консолей кода: плюсы - минусы.

27.07.2020    5802    Evg-Lylyk    47    

Unit-тесты с помощью 1C:Enterprise Development Tools

EDT v8 Бесплатно (free)

Концепция TDD требует перестроения подходов к разработке и наличия инструментов для запуска Unit-тестов. Про написание плагина для EDT, который содержит в себе инструменты написания, анализа результатов и запуска Unit-тестов для конфигураций 1С на конференции Infostart Event 2019 Inception рассказал ведущий специалист по внедрению компании 1С-Рарус Александр Капралов.

11.06.2020    4880    doublesun    8    

Обработка кодом результата запроса в Консоли запросов 9000

Консоль запросов v8::Запросы Бесплатно (free)

Пять вариантов обработки кодом в консоли запросов 9000: простое выполнение, построчно без индикации, построчно с индикацией, простое в фоне, построчно в фоне с индикацией.

01.06.2020    1779    kuza2000    7    

Подсистема "COMExchange": консоль запросов в режиме «Консоль кода». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

Описана возможность использования обработки «Консоль запросов 1С+ADO» в качестве «консоли кода». При этом имеется возможность помещения результатов вычислений в «табло формул». Кроме результатов вычислений в это «табло» можно также вывести время выполнения и описание обработанных ошибок времени исполнения.

03.04.2014    26238    yuraos    2    

Шпаргалка. Автоматическое тестирование внешних отчетов и обработок в нескольких информационных базах

Прочие инструменты разработчика v8 Бесплатно (free)

Используем Автоматизированное тестирование на практике. Простой код для обновления и запуска внешних отчетов и обработок в нескольких ИБ. Создаем рабочее решение с нуля.

02.05.2020    4938    pparshin    21    

Установка EDT 2020.2 на Ubuntu 18.04

EDT Россия Бесплатно (free)

Установка EDT 2020.2 на Ubuntu 18.04 Заметки на будущее.

12.04.2020    3374    awk    14    

Enterprise Development Tools, версия 2020.2 для мобильной разработки. Бег по граблям (серия публикаций от чайника для чайников)

EDT v8::Mobile 1cv8.cf Бесплатно (free)

Небольшие советы, которые сберегут время при работе с Enterprise Development Tools, версия 2020.2.

10.04.2020    4872    capitan    8    

Ускорение реструктуризации таблиц Промо

Инструментарий разработчика Администрирование данных 1С Тестирование и исправление Бесплатно (free)

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

12.09.2013    52540    OLEG4120    32    

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    9252    Evg-Lylyk    0    

Технология разветвлённой разработки, использующая git, ci/cd

CI/CD Git (GitHub, GitLab, BitBucket) Методология управления разработкой EDT 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Адаптация и расширение требований к разветвлённой разработке с использованием git и ci/cd, основанное на стандартах 1С

24.02.2020    6837    check2    10    

VM1C - виртуальная машина для 1С Промо

Инструментарий разработчика v8 1cv8.cf Россия Бесплатно (free)

Демонстрация возможностей виртуальной машины для 1С. Создаем и выполняем код модулей в режиме Предприятия в реальном времени.

07.06.2013    26941    m.bolsun    46    

CI/CD для 1С проектов, унифицировано, с кастомизацией

CI/CD Инструментарий разработчика Бесплатно (free)

Тема CI/CD в связке с 1С не нова, но многих пугает сложность использования и поддержки, необходимость обучения команды. Про то, как унифицировать и упростить поддержку сборочных конвейеров для большого количества решений, в своем докладе на конференции Infostart Event 2019 Inception рассказал начальник отдела компании BIA-Technologies Валерий Максимов.

20.02.2020    7343    theshadowco    13    

О синхронизации ИБ с проектом в EDT

EDT Бесплатно (free)

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

19.02.2020    4590    check2    2    

EDT + УТ 11.4 + БП 3.0 + Расширения. ЧАСТЬ 03

EDT v8 Бесплатно (free)

Групповая разработка в EDT.

21.01.2020    4913    YuriYuriev    3    

Подсистема "COMExchange", "Консоль запросов 1C + ADO" - сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx. Промо

Консоль запросов v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

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

10.03.2013    33479    yuraos    3    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    8159    Scorpion4eg    8    

EDT + УТ 11.4 + БП 3.0 + Расширения. Часть 02

EDT v8 Бесплатно (free)

Продолжение "путевых заметок" про EDT...

09.01.2020    6889    YuriYuriev    31    

Как управлять качеством кода 1С, используя платформу SonarQube

Рефакторинг и качество кода Инструментарий разработчика Бесплатно (free)

При быстром росте функциональности проводить визуальный Code-Review для обнаружения некачественного кода проблематично. О том, как автоматизировать проверку качества кода 1С с помощью платформы SonarQube на конференции Infostart Event 2019 Inception рассказал ведущий разработчик компании «Командор» Олег Тымко.

30.12.2019    9851    olegtymko    10    

Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

На примере шуточного примера продемонстрированы не шуточные возможности консоли запросов в составе подсистемы "COMExchange" для работы с регистрами, подчинёнными регистратору («обнуление» регистров, ввод начальных итогов (сведений), корректировка итогов).

31.03.2013    22730    yuraos    7    

EDT + УТ 11.4 + БП 3.0 + Расширения. ЧАСТЬ 01

EDT v8 Бесплатно (free)

...продолжаем мучить(ся с) EDT

28.12.2019    7214    YuriYuriev    8    

EDT 1.16. Первые 20 часов работы

EDT v8 Россия Бесплатно (free)

Первое знакомство с 1C:Enterprise Development Tools, версия 1.16.0.363.

25.12.2019    11773    YuriYuriev    13    

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

Практика программирования Инструментарий разработчика v8::УФ Бесплатно (free)

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    15186    TitanLuchs    23    

Гаджеты для одинэсника. Часть 2 Промо

Инструментарий разработчика Мобильная разработка ИТ-компания Бесплатно (free)

... ситуация с планшетами весь 2012-й год была достаточно запутана. То и дело всплывала какая-то модель, которая на некоторое время по отношению цена/качество привлекала к себе внимание. Я долго откладывал эту статью, ожидая лидеров, и они, наконец, обозначились...

20.03.2013    35183    O-Planet    61    

Мониторим производительность с помощью 1С RAS

Инструментарий разработчика Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    13608    ivanov660    20    

Разбор любого JSON-объекта в соответствующую структуру

Инструментарий разработчика WEB v8 1cv8.cf Бесплатно (free)

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

13.11.2019    13217    user665435_al.windstorm    15    

Git для 1С-ника и другие технологии групповой разработки

Инструментарий разработчика Git (GitHub, GitLab, BitBucket) v8 1cv8.cf Россия Бесплатно (free)

У многих специалистов в отношении Git сложились стереотипы, мешающие начать работу с этим прекрасным и удобным инструментом. Почему его не стоит бояться, и чем он может упростить жизнь 1С-никам, рассказал архитектор ГК «Невада» Станислав Ганиев.

28.10.2019    13800    stas_ganiev    16    

Фреймворк для создания бизнес web-приложений

Прочие инструменты разработчика Бесплатно (free)

Для создания систем, решающих узкие бизнес задачи, использовать 1С бывает нецелесообразно. Хочу представить альтернативу - web фреймворк katejs. Будет интересно также тем, кто интересуется web разработкой на современном javascript.

15.10.2019    5638    nep_i    25