Daten für Performance-Tests. C1 SetCon Performance Day 5. Oktober 2010 13:00-13:45 Update vom 2. Juli 2011 Volker Bergmann

Ähnliche Dokumente
Daten für Performance-Tests

Notes2DB. Machen Sie Ihre Notes-Datenbanken relational! Vortragender: Mag. Ing. Johannes Fiala, Fiala Web Development GmbH

Referenzielle Integrität SQL

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

PostgreSQL in großen Installationen

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Remedy-Day Innovative ITSM Lösungen von NTT Data. Machen wir es uns besser, schöner und leichter. Thomas Rupp Alexander Lyer Lukas Máté

Betriebshandbuch. MyInTouch Import Tool

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Options- und Freitext-Modul Update-Anleitung

Was ist das Tekla Warehouse

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Anleitung zur Nutzung der OFML Daten von Cascando in pcon.planner

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Ein Ausflug zu ACCESS

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

a.sign Client Lotus Notes Konfiguration

MySQL Installation. AnPr

Das Starten von Adami Vista CRM

Übung: Verwendung von Java-Threads

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Elexis-BlueEvidence-Connector

4D Server v12 64-bit Version BETA VERSION

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

Verde. Gudula Holzheid Senior Consultant Ex Libris (Deutschland) GmbH

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Informatik für Ökonomen II Übung 0

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Ablösung von Control-M durch JobScheduler

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Oracle APEX Installer

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

-Virtuelle Jagdfliegerschule- Teamspeak Seite 1 von 6

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

TimeSafe Leistungserfassung

Installation der 4Dv12sql Software für Verbindungen zum T.Base Server

WebDAV Sync mit GoodSync for Mac OS X

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Installation des CMS-Systems Contao auf einem Windows-Rechner mit XAMPP

Realisierung von UMCM über den IBH Link UA mit Simatic S5 und S7 Steuerungen

MetaNavigation der effizienteste Weg maximalen Mehrwert aus BI Metadaten zu ziehen

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

REGIONALES RECHENZENTRUM ERLANGEN [ RRZE] Datenbanken. RRZE-Campustreffen, Stefan Roas und Ali Güclü Ercin, RRZE

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Verbinden von IBM Informix mit Openoffice mittels JDBC

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

MailUtilities: Remote Deployment - Einführung

Gemeinden-Datenexport. Kt LU BAGE. Version September 2012

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Installationsanleitung für. SugarCRM Open Source. Windows Einzelplatz

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK

KONVERTIERUNG VON EXTERNEN DTA DATEIEN (ÜBERWEISUNGEN)

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

moveon - international relations management

ABACONNECT VERWENDUNG VON APACHE TCPMON UTILITY MIT ABACONNECT WEBSERVICES

Datenbank-Refactoring mit LiquiBase

Oracle. 1. Software-Download 2. Lifetime-Support

Lokale Installation von DotNetNuke 4 ohne IIS

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

PC Software PPS-FM11 Windows Auswertung und Monitor BDE Betriebsdatenerfassung mit Terminals, RFID und SQL Client

JTL-Wawi Workflows. Ein Workshop mit Dirk Lehmeier & Georg Jennessen

Web Interface für Anwender

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Reporting Services und SharePoint 2010 Teil 1

Installation des Templates Multiflex5

DB2 Codepage Umstellung

Typo 3 installieren. Schritt 1: Download von Typo3

Clients in einer Windows Domäne für WSUS konfigurieren

Java Einführung Packages

Oracle Warehouse Builder 3i

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

B12-TOUCH VERSION 3.5

Adminer: Installationsanleitung

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Sicherheits-Tipps für Cloud-Worker

Restore Exchange Server 2007 SP2

Verwenden von Adobe LiveCycle ES3 Connector für Microsoft SharePoint

Installations- und Lizenz-Guide für Nutzer.

Tag 4 Inhaltsverzeichnis

Internet for Guests. Interfaces Deutsch. Interfaces Seite 1/14

Intergraph Geospatial 2014 Download, Installation und Lizenzierung

Software Installationsanleitung

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Mit dem MySQL Migration Toolkit aus ACCESS Datenbank SQL-Skripte generieren

SFKV MAP Offline-Erfassungstool. Installationsanleitung

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

MARCANT - File Delivery System

Transkript:

Daten für Performance-Tests C1 SetCon Performance Day 5. Oktober 2010 13:00-13:45 Update vom 2. Juli 2011 1

Kennen Sie den? 13 Jahre professionelle Software-Entwicklung zahlreiche Großprojekte Analyse, Design, Implementation, Test Bestrebt, Software-Qualität schon in frühen Projektphasen zu sichern Performance-Fokus, besonders for J2EE Server-Software Entwicklung von Open Source Testwerkzeugen Er heißt 2

Performance Testing Process Diese Schritte sind Bestandteil fast jeden Performance-Tests 1. Build application 2. Deploy application 3. Set up server data 4. Set up load generators 5. Run performance test 6. Create report Datenaspekte (Schritte 3 und 4) oft vernachlässigt essentiell für die Aussagekraft des Tests Thema des Vortrags 3

Performanz-Prognose Eine möglichst genaue Prognose der Produktionsperformance erfordert den Test mit produktionsähnlicher Hardware produktionsähnlichem Client-Verhalten produktionsähnlichen Daten Menge Struktur aber: bessere Qualität 4

Produktionsdaten in Performance-Tests Sind Produktionsdaten verfügbar? (Outsourcing, erste Version, sensible Daten, Urlaub, Migration,...) anonymisiert? (Sensitivität der Daten, Kompetenz der Verantwortlichen, Meldepflichten...) valide? (10-30% fehlerhafte Altdaten üblich durch Abbruch von Prozessen, Abschalten von Constraint-Validierung bei Migration,...) anwendbar? (obsolete Daten, neuer Release erfordert neue Daten, geändertes Nutzerverhalten, mehr Nutzer in der Zukunft...) 5

Produktionsdaten-Fazit Produktionsdaten sind der perfekte Test-Maßstab...für die Vergangenheit Im Regelfall müssen zusätzlich zur Extraktion von Produktionsdaten... Datenvalidität geprüft werden Untermengen extrahiert werden Daten hinzugeneriert werden Extraktion und Anonymisierung von Produktionsdaten stellen nur einen Teil der Datenaufbereitung für Performance-Tests dar 6

Datenaspekte im Performance-Test 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 7

Extraktion & Anonymisierung Oft können Datenstrukturen 1:1 in das Testsystem übertragen werden Nur vertrauliche Daten müssen anonymisiert werden Acount Number Generator Person Generator Generator Generator Customer id salutation firstname lastname bankaccountnr bankcode Customer id salutation firstname lastname bankaccountnr bankcode Customer id salutation firstname lastname bankaccountnr bankcode Production DB id.. Order Test DB 8

Anonymisierung mit Benerator Generatormodule erzeugen Objekte oder konsistente Objektgraphen, deren Komponenten auf das Zieldatenmodell abgebildet werden <<Generator>> BankAcount Generator countrycode: String generates <<JavaBean>> BankAccount bank: Bank accountnumber: String iban: String bank <<JavaBean>> Bank bin: String name: String bankcode: String bic: String <database id="prod" readonly="true"... /> <database id="testdb"... /> <iterate source="prod" type="customer" consumer="testdb"> <variable name="acct" generator="bankaccountgenerator"/> <attribute name="bank_account_nr" script="acct.accountnumber" /> <attribute name="bank_code" script="acct.bank.bankcode" /> </iterate> <iterate source="prod" type="order" consumer="testdb" /> 9

Datenbank-Subsetting Wenn man z.b. den Produktkatalog auf Product A2 beschränken möchte... Catalog Category A Category B Product A1 Product A2 Product B1 Product Option Product Option Product Option Product Option Product Option Product Option Tariff Component Tariff Component Tariff Component Tariff Component Tariff Component Tariff Component Tariff Component Tariff Component Tariff Component Contract Line Contract Line Contract Line Contract Line Contract Contract Customer Customer Customer Customer Customer Customer...wie wahrt man dann referentielle Integrität? 10

Jailer Datenbank-Subsetting Open Source, aktives Projekt, Aktuelle Version: 3.4.7 (2010) Erkennt explizite Foreign Key-Beziehungen in der Datenbank Konfiguration: implizite Foreign Keys Aggregation/Referenz 11 Export in SQL XML DbUnit

Datenreplikation Institute 1 Risk 2 Risk 12 Institute 11 Asset 6 Risk Type 4 Asset 16 Debt 4 Asset Type 9 Debt 14 Debt Type 1 Risk 22 Asset 26 Institute 21 Risk 32 Debt 24 Asset 36 Debt 34 Institute 31 12

Zusammenführen von Datenquellen Hauptaufgaben: Vergabe neuer Primärschlüssel Ersetzen von Referenzen Konsistenzprüfung Transcoding Feature in Benerator GEO Production CUSTOMER PRODUCT System under Test GEO PRODUCT Wird durch kein weiteres Standardwerkzeug unterstützt GEO Testbed PRODUCT CUSTOMER CUSTOMER 13

Datengenerierung Synthetische Erzeugung von Daten ETL-Funktionalität: Extraktion und Transformation von Daten aus Datenbanken oder Dateien Generator-Funktionalität: Generierung von Zufallsdaten / zufälligen Kombinationen von Basisdaten Kernproblem: Explizite und implizite Bedingungen in Datenbank Applikation Für die meisten Performance-Tests müssen zumindest Teile der Daten generiert werden Erfahrung: Typischerweise unbrauchbare Zufallsdaten 14

Wenn man gute Daten generieren könnte... Test von Entwicklungsszenarien: Mobilfunk-Beispiel: Wie wäre die Systemperformance in einem Jahr, wenn wir durch uns unseren neuen Flatrate-Tarif 30% Neukunden gewinnen und alle Kunden 50% länger telefonieren würden? Test auf Spezialprobleme: Beispiel Adressvalidierung: Gibt es bei der automatischen Korrektur von Postadressen Spezialkonstellationen, die problematisch sind ( Killeradressen?) Ihr Beispiel: Der typische Prio 1-Performance-Incident nach 2 Monaten Produktion Lösungsansatz: Generative Abdeckung aller Kombinations-/ Fehlermöglichkeiten (deckt u.u. auch funktionale Fehler auf) 15

Wenn man gute Daten generieren könnte... Performance-Test in frühen Projektphasen Start mit Smoke -Daten, die sehr schnell konfiguriert sind Verfeinerung der Generierung bei Implementationsfortschritt Continuous Performance Testing Show-Case-Erstellung und Schulungsdaten als Nebenprodukt 16

Das kann man: Benerator... entstand, um für Performance Tests Produktionsdaten simulieren zu können hat zum Hauptziel, valide Daten in großer Menge zu erzeugen und Produktionsdaten zu anonymisieren erlaubt die Generierung extrem komplexer Strukturen ist Open Source ist unabhängig vom Betriebssystem ist unabhängig von der Zielplatform, RDBMS, XML, CSV, XLS,... erlaubt die Definition fachlicher Generierungskomponenten ist das Standardtool zur Testdatengenerierung 17

Benerator-Architektur @ 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] 18

Benerator-Anwender 19 bislang 10.000 Downloads

Datengenerierung mit Benerator Definiere eine Datenbank db --> Führe DDL/SQL-Skripte aus --> Importiere Daten aus DbUnit-Dateien --> Generiere valide Daten --> <database id="db"... /> <execute uri="create_tables.sql" target="db" /> <iterate source="products.dbunit.xml" consumer="db" /> <generate type="db_order" consumer="db"> <id name="id" generator="new DBSequenceGenerator('SEQ_ORDER',db)"/> <reference name="customer" targettype="db_customer" distribution="random" /> <attribute name="created_at" generator="currentdategenerator" /> <attribute name="created_by" script="this.customer" /> </generate> 20

Zusammenführung mit Benerator Definiere zwei Quelldatenbanken db1 -->... und db2 -->... und eine Zieldatenbank --> Führe DDL/SQL-Skripte aus --> Importiere Daten aus DbUnit-Dateien --> Generiere valide Daten --> <database id="source1"... /> <database id="source2"... /> <database id="target"... /> <transcodingtask target="target" identity="id.xml"/> <transcode source="source1" table="country"> <cascade ref="state.country_ref" /> </transcode> <transcode source="source2" table="ctr_currency"/> </generate> Die Datei id.xml: Identität der Tabelle COUNTRY... -->...durch die Spalte NAME --> Identität der Tabelle STATE... -->...als Sub-Identität von COUNTRY... -->...anhand des STATE-Namens --> <dbsanity> <identity table="country" type="unique-key" columns="name" /> <identity table="state" > type="sub-nk-pk-query" parents="country"> select NAME, ID from STATE where COUNTRY_FK =? </identity> </dbsanity> 21

Benerator-Anbindungen Hudson CI Eclipse JUnit TestNG benclipse Telnet Ant Benerator Plugin Feed4 Junit Feed4 TestNG Benerator (Command Line Interface) 22

Demo: Spring Pet Clinic 23

Datenbezogene Werkzeuge Benerator Altova MapForce Anonymization Datenbank Subsetting Replikation Datengenerierung Zusammenführung *ix OS 24

Danke für Ihre Aufmerksamkeit volker@...noch Fragen? 25