Oleg Atamanenko
Периодически необходимо решать задачу создания больших ( и не очень) объёмов тестовых данных для проведения различных видов тестирования - функционального, нагрузочного (тестирование стабильности и производительности). При этом часто получается так, что система на тестовых данных ведёт себя совсем иначе, чем на реальных данных. Причина кроется в том, что создать правдоподобные тестовые данные всегда достаточно сложно.
Изучая данный вопрос я наткнулся на замечательный фреймворк - Databene Benerator, основной целью создания которого как раз и является создание правдоподобных тестовых данных для проведения различных видов тестирования.
Установка фреймворка осуществляется двумя способами - как отдельное приложение и как плагин для Maven.
Для использования Databene benerator в проектах, использующих для сборки Apache Maven необходимо добавить в зависимости databene-benerator и сконфигурировать его.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myorganization</groupId>
<artifactId>databene-benerator-test</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>data generation project</name>
<dependencies>
<dependency>
<groupId>org.databene</groupId>
<artifactId>databene-benerator</artifactId>
<version>0.5.9</version>
</dependency>
<dependency>
<groupId>org.databene</groupId>
<artifactId>databene-webdecs</artifactId>
<version>0.4.9</version>
</dependency>
<dependency>
<groupId>org.databene</groupId>
<artifactId>databene-commons</artifactId>
<version>0.4.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.databene</groupId>
<artifactId>maven-benerator-plugin</artifactId>
<version>0.5.9</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptor>src/main/resources/benerator.ben.xml</descriptor>
<encoding>UTF-8</encoding>
<validate>true</validate>
<dbUrl>jdbc:mysql://localhost:3306/hrtool?useUnicode=true&characterEncoding=UTF-8</dbUrl>
<dbDriver>com.mysql.jdbc.Driver</dbDriver>
<dbSchema>database</dbSchema>
<dbUser>user</dbUser>
<dbPassword>password</dbPassword>
</configuration>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.5-beta5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
В конфигурации необходимо указать как минимум следующие параметры:
Кроме использования файла pom.xml databene поддерживает возможность указания параметров в файле benerator.properties, что может быть удобно.
Databene benerator обладает следующими возможностями:
В комплекте идёт толковая, но, к сожалению, неполная документация по возможностям.