Benerator Generating Performance Test Data with Benerator Volker Bergmann databene.org 7541
Volker Bergmann 2 Freelancer Passionate Software Architect & Troubleshooter Specialized in Performance Assessment and Tuning 11 years of experience with enterprise application performance Author of Benerator and Benclipse
Performance Test Necessities 3 > Have a test setup that resembles production in Hard- and Software setup Client load (LoadRunner, JMeter) Data(base) content (production data, benerator) > Neglecting any of these makes performance test results useless for production performance prediction! Load Generator 800 concurrent users Application Under Test Production Application Database Production Under Test Database 10M customers
4 benerator is the leading open source tool to address an essential necessity of performance testing: creating production-like data!
Production data 5 > performance testers like testing with production data, >...but face problems (e.g. for new software, outsourcing, privacy protection): availability and applicability of production data > Production data always reflects the past: No scenario testing No worst-case checks No fuzz tests > but performance testing always target at predicting future performance!
Data generator requirements 6 > Must-haves passing complex validation customizability / extendability performance > Desirable production data export + anonymization early applicability in projects (little initial effort) little maintenance effort with ongoing implementation > Nice to have platform independence reusability among companies and technologies
Databene Benerator 7 > Is the leading open source test data generator > Fulfills all the requirements above > available at http://databene.org/databene-benerator > Reduces data definition effort from weeks to days! > Is easily extended for new system types and file formats > Has an Eclipse Plugin: Benclipse (http://databene.org/eclipse/updates/)
How Benerator can help you 8 export user data login files setup files create data files batch import files Load Generator create users syntesize test data Application Server LDAP Server Production Database extract & transform production data Database
user interfaces 9 ruise control Eclipse benclipse Ant Telnet Benerator Plugin Benerator (Command Line Interface)
benerator architecture 10 @ Person Address Finance Net Generators, Business Domain Packages 1,2,3,... Sequence Core Extensions Weight Function Benerator Core Task Core Extensions Validator OK Data Data Import/Export, Metadata Import File System base Oracle MySQL HSQL Derby Postgres DB2 SQL Server Firebird Text CSV XML Flat Excel(TM) DbUnit Custom [LDIF] [JCR] [JNDI] [LDAP] [JMS] [EJB] [Web Service] [JCR]
DEMO Benclipse GUI 11
DEMO Hello World 12
DEMO Shop Database & Domains 13 PARENT_ID = ID DB_CATEGORY ID: VARCHAR(9) NAME:VARCHAR(30) PARENT_ID: VARCHAR(9) CATEGORY_ID = ID DB_PRODUCT EAN_CODE: VARCHAR(9) NAME:VARCHAR(30) CATEGORY_ID: VARCHAR(9) PRICE: NUMBER(8, 2) MANUFACTURER: VARCHAR(30) NOTES: VARCHAR(256) DESCRIPTION: CLOB IMAGE: BLOB PRODUCT_EAN_CODE = EAN_CODE DB_ORDER_ITEM ID: NUMBER(10) ORDER_ID: NUMBER(10) NUMBER_OF_ITEMS: NUMBER(10) PRODUCT_EAN_CODE: VARCHAR(13) TOTAL_PRICE: NUMBER(8, 2) ORDER_ID = ID DB_ROLE NAME:VARCHAR(30) ROLE_ID = NAME DB_USER ID: NUMBER(10) NAME: VARCHAR(30) EMAIL: VARCHAR(50) PASSWORD:VARCHAR(16) ROLE_ID: VARCHAR(16) ACTIVE: NUMBER(1) ID = ID DB_CUSTOMER ID: NUMBER(10) CATEGORY: CHAR(1) SALUTATION: VARCHAR(10) FIRST_NAME:VARCHAR(30) LAST_NAME: VARCHAR(30) BIRTH_DATE: DATE CUSTOMER_ID = ID DB_ORDER ID: NUMBER(10) CUSTOMER_ID: NUMBER(10) CREATED_AT: DATE > Modify the file shop.development.properties as you need, e.g.: locale=it country=it
DEMO Extending Benerator 14
Person Source Alice Bob Charly Alice Bob Charly Alice Bob Charly Reciprocal Weight Alice Alice Charly Bob Alice Bob Alice Number Generator 1000000000000 1000000000001... 1000000000008 1000000000009 1000000000010... Number Converter "1000000000000" "1000000000001"... "1000000000008" "1000000000009" "1000000000010"... CreditCard Validator "1000000000009"... Console Consumer owner creditcard amount id Transaction Demo explained: Extending Benerator 15
future work 16 > establish benerator as THE ONE open source test data generation platform > grow an ecosystem of domain plugins > generating JavaBeans, calling EJB services > adding load generator features > going professional with consulting and add-ons > finding cooperators
Thanks for your attention! Volker Bergmann Databene http://databene.org volker@databene.org