Databene Benerator - Генерация Тестовых Данных



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

Тесты пишут все, код создается исключительно через ТДД , использовать jmeter/ab .

Однако все испытания очень тесно связаны с тестовыми данными.

И их нужно сгенерировать/записать.

Для юнит-тестирования проблема не актуальна — бросил мок, запустил и забыл.

А как насчет нагрузочного тестирования? Когда мне нужно не 1-2-5-10 объектов, а миллионы ?

Databene Benerator - генерация тестовых данных

Большинство (php) разработчиков, с которыми я встречался, когда сталкивались с задачей нагрузочного тестирования своего кода, вручную создают несколько фикстур и форсируют их ( аб/джметр ).

Полученный результат теста недостоверен, но об этом не задумываются.

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

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

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

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

связанный данные.

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

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



Бенератор данных - FTW!

Генератор (да, забавное название) служит двум целям: генерации данных и анонимизации.

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

Toolza использует то, что вы написали XML скрипт для генерации CSV/XML или экспортируйте непосредственно в базу данных.

По сути, он работает везде и поддерживает следующие базы данных:

  • Оракул
  • DB2
  • MS SQL-сервер
  • MySQL
  • PostgreSQL
  • HSQL
  • Н2
  • дерби
  • Жар-птица
Скрипт представляет собой серию тегов генерировать , в котором вы описываете, какие сущности вы будете создавать и каким образом.

Звучит просто, но есть нюансы.

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

Теперь я попробую пошагово описать процесс от загрузки до получения данных в Postgres. Предполагается, что у вас уже установлен Postgres :)

Распаковка/Установка

Распаковка архив продукции и добавим его в конец ~/.

bash_profile :

   

export BENERATOR_HOME=/path/to/unpacked/benerator



export PATH=$PATH:$BENERATOR_HOME/bin

Мы делаем:

chmod a+x $BENERATOR_HOME/bin/*.

sh



Первый сценарий

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

Создайте собственную папку и сохраните в ней benerator.xml со следующим содержимым: benerator.xml

<Эxml version="1.0" encoding="UTF-8"?> <setup xmlns=" http://databene.org/benerator/0.7.6 " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="http://databene.org/benerator/0.7.6 benerator-0.7.6.xsd" defaultEncoding="UTF-8" defaultDataset="US" defaultLocale="us" defaultLineSeparator="\n">

Теги: #databene #benerator #тестирование #фикстуры #пользовательские данные #тестирование ИТ-систем

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

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

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