(j)meterweise integrieren v1.1 - infomar.de · martin heider, infomar software 2 agenda...

62
Martin Heider, infomar software 1 (J)Meterweise integrieren Integrationstests mit JMeter und Eclipse

Upload: others

Post on 30-Aug-2019

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 1

(J)Meterweise integrierenIntegrationstests mit JMeter und Eclipse

Page 2: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 2

Agenda� Ausgangssituation� Weshalb JMeter?� JMeter Übersicht� JMeter – Deep inside� Erweitern von JMeter in Eclipse� JMeter im Integrationstest� Fazit / Zusammenfassung� Weiterführende Links und Quellen

Page 3: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 3

Ausgangssituation

Page 4: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 4

Ausgangssituation

� Integration ist Vision in der Medizintechnik� PACS stehen im Zentrum dieser Vision

PACSPicture Archive Communication System

Page 5: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 5

Ausgangssituation

PACSPicture Archive Communication System

2. Aufnahme3. Nachbereitung

4. Befundung

5. Archivierung

1. Planung

RIS / HIS* Information System

Modalität Arbeitsplatz Arbeitsplatz

LangzeitArchiv

Page 6: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 6

Ausgangssituation

PACSPicture Archive Communication System

RIS / HIS* Information System

Modalität Arbeitsplatz Arbeitsplatz

SSI

DICOM

HL7

FBLOB

SOAP

Page 7: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 7

Ausgangssituation

PACS

SSI

DICOM

HL7

FBLOB

SOAP

� Viele Schnittstellen� Testtreiber für einige

Schnittstellen vorhanden� Dicom Offis� Dicom ADVT� MESA� FBLOB

� Schnittstellen für übrige HL7 und SOAP TCP- und Socket basiert

Page 8: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 8

� Medizintechnik unterliegt strengen QM-Auflagen (FDA)� Viele Testebenen, um Qualität sicherzustellen

� Unit Tests in der Entwicklung (UT)� Produktintegrationstests (PIT)� Produktvalidierungstests (PVT)� Systemtest (ST)� Systemintegrationstest (SIT)� CAT (Klinischer Anwendungstest)

Ausgangssituation

Nähe zurEntwicklung

Page 9: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 9

AusgangssituationProduktintegrationstests (PIT)

� Entwicklungsnah� Fokus auf Prüfung der Schnittstellen gegenüber ihrer

funktionalen Spezifikation

Spezialitäten des PACS PIT� Keine Oberflächentests� Größte Anzahl von Schnittstellen� Interesse an Performance-/Stabilitätsaussagen� Verwendung der Tests im Feld� Verfügbarer WinRunner sehr teuer, aber wenig hilfreich

Page 10: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 10

Weshalb JMeter?

Page 11: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 11

Weshalb JMeter? (I)� 100 % Java

� Plattformunabhängigkeit, Multiplattform-Unterstützung� Keine Notwendigkeit für proprietäre Skriptsprache� Gleiche Entwicklungssprache wie für zu testendes PACS� Umfangreiche Bibliothekenunterstützung (<-> WinRunner TSL)

� OpenSource� Ermöglicht Verwendung zur Problemdiagnose im Feld� Geringe Kosten im Vergleich zu Mercury WinRunner

Page 12: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 12

Weshalb JMeter? (II)� Ermöglicht kurze Turnarounds

� mit Entwicklern� Für geänderte Tests

� Großes Repertoire bereits existierender Treiber� SOAP, HTTP, LDAP, …

� Gute Erweiterungsmöglichkeiten durch � „Plugin“-Technik� Einbindung von externen Treibern

� Ausbaufähigkeit zu Last- und Stresstestszenarien

Page 13: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 13

JMeter Übersicht

Page 14: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 14

JMeter Übersicht

� Historie – aktuelle Entwicklung� GUI - Oberfläche� Zentrale Elemente

� ThreadGruppe� Sampler� Controller� Listener� …

� Gültigkeitsbereiche der Elemente� Weiteres Wissenswertes

Page 15: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 15

JMeter ÜbersichtGestern und heute

� Historie� Version 1.0 von Stefano Mazzocchi (02/99)� Aktuelle Version 2.0.3 von Michael Stover (03/05)� Release in halbjährigem Abstand

� Ziele / Zweck� Ursprünglich: Test Performance von Apache JServ� Simulation von Lastszenarien� Messung von Performance

� Open Source� unter http://jakarta.apache.org/jmeter/� 729 Klassen, ~ 51 Kilo NCSS

Page 16: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 16

JMeter ÜbersichtGUI – antik, aber hilfreich

Page 17: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 17

JMeter ÜbersichtGUI – antik, aber hilfreich

� Linke Seite� Testplan Baumdarstellung� Cut - Copy - Paste� Kontextsensitives Menu� Merge von Testplänen� Speicherung von Teilen� Immer nur ein Testplan

Page 18: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 18

JMeter ÜbersichtGUI – antik, aber hilfreich

� Rechte Seite – Detailansicht zur� Spezifikation von Testelementen� Anzeige von Testergebnissen

Page 19: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 19

JMeter ÜbersichtGUI – antik, aber hilfreich

Page 20: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 20

JMeter ÜbersichtZentrale Elemente

Threadgroup

Controller

Listener

Testplan

Config

Sampler

Timer

AssertionsPre-/Postprocessors

Page 21: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 21

JMeter ÜbersichtZentrale Elemente - Threadgroup

� Steuerung des Rampups� Parallelisierung des Testablaufs� Wiederholanzahl� Scheduling� Fehlerverhalten

Page 22: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 22

JMeter ÜbersichtZentrale Elemente - Sampler

� Ausführung einer Anfrage� HTTP� SOAP, WebService� LDAP� JDBC� Java Requests (Test!)� TCP� Beanshell, BSF� (Tomcat Access Log)

Page 23: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 23

JMeter ÜbersichtZentrale Elemente - Controller

� Ablauf und Durchsatzsteuerung � Ablauf (wie oft, wann, etc.)� Durchsatz� Zeitlich

� Strukturierung (Simple, Include)� Parametrierung (Zufälligkeit)� Unterstützte Typen

� If, While, For Each, Switch� Throughput,� Module, Simple� Random, Random Order� Interleave, OnlyOnce

Page 24: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 24

JMeter ÜbersichtZentrale Elemente - Config

� Parametrierung mehrerer Sampler gleichen Typs� HTTP� JDBC� LDAP� TCP� Java

� Definition von Variablen� Manager

� HTTP Authorization (Simple)� HTTP Headers� HTTP Cookies

Page 25: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 25

JMeter ÜbersichtZentrale Elemente - Listener

� Zusammenfassung von Ergebnissen in� tabellarischen Ansichten� grafischen Ansichten� Dateien

� Monitoring Tomcat (ab 5.0.19)� Email-Benachrichtigung� Unterstützte Typen

� Aggregate Report� View Results in Table� Graph Results� View Results Tree� Simple Data Writer� Mailer� Assertion Results

Page 26: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 26

JMeter ÜbersichtZentrale Elemente - Timer

� Steuerung � Durchsatz� Zeitlich

� Parametrierung (Zufälligkeit)� Unterstützte Typen

� Constant Timer� Uniform Random Timer� Gaussian Random Timer� Constant Throughput Timer

Page 27: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 27

JMeter ÜbersichtZentrale Elemente - Assertions

� Überprüfung der durchgeführten Sampler auf� Inhalt� Dauer� Größe� „Wohlgeformtheit“� Identität

� Unterstützte Typen� Response � Beanshell (größte Freiheit ;-)� Duration� MD5Hex � HTML Tidy Prüfung� Size� XML, XPath

Page 28: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 28

JMeter ÜbersichtZentrale Elemente - Preprocessors

� Benutzerabhängige � Parameterwerte� Zähler

� Parametrierung von Requests bzgl.� Linkadressen� Werten von Eingabemasken� Session Ids

� Unterstützte Typen� User Parameters

� Interaktiv� Aus XML Datei

� HTML Link Parser� HTML Parameter Mask� HTTP URL Rewriting Modifier

Page 29: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 29

JMeter ÜbersichtZentrale Elemente - Postprocessors

� Auswertung und Speicherung von Ergebnissen � Steuerung der Testfortführung� Unterstützte Typen

� Regular Expression Extractor� Result Status Action Handler� Save Responses to file� Generate Summary Results

Page 30: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 30

JMeter ÜbersichtZentrale Elemente - Sonstiges

� HTTP Proxy Server – Recording� Workbench – JMeter „Scrapbook“

Page 31: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 31

JMeter ÜbersichtGültigkeitsbereich der Elemente

� Folgende Elemente betreffen Vaterknoten und all seine Kinder� Config Elements� Pre-/Postprocessors� Assertions� Timers� Listeners

Sampler OneSampler TwoSampler ThreeSampler Four

Page 32: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 32

JMeter ÜbersichtGültigkeitsbereich der Elemente

� Beispiel 1 � Beispiel 2

One mit A #1Two mit A #2Three mit A #2Four

One mit A #1 + T #2Two mit A #2 + T #1 + T #2Three mit A #2 + T #1 + T #2Four mit T #2

Page 33: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 33

JMeter ÜbersichtWeiteres Wissenswertes

� Dateiformat� XML (mit Suffix jmx)� Elementtypen node, element, collection, property

� Ausführungsmöglichkeiten� Interaktiv� BatchMode� Verteilt über mehrere Rechner� Ant TaskDef� Junit Adapter (noch in Arbeit :-)� Verwaltung mehrerer Testpläne in Eclipse

Page 34: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 34

JMeter – Deep inside

Page 35: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 35

JMeter – Deep inside� Package Struktur� Wichtige Interfaces� Zusammenspiel GUI und TestElements

Page 36: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 36

JMeter – Deep insidePackage Struktur

componentscomponentsfunctionsfunctions

jorphanjorphancorecore

tcptcp ftpftp

ldapldapjavajava

jdbcjdbc

htmlparserhtmlparser

httphttp monitorsmonitors

modelmodel

monitormonitor

Page 37: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 37

JMeter – Deep insideZentrale Interfaces

� GUI

� Model

JMeterGUIComponentTestElement createTestElement()void modifyTestElement(TestElement)void configure(TestElement);

Preprocessorvoid process()

Postprocessorvoid process()

Timerlong delay()

SamplerSampleResult sample(…)

Controllervoid initializeboolean isDoneSampler next()…

TestElement…

Page 38: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 38

JMeter – Deep insideZusammenspiel GUI und Testelements

JMeterGUIComponent

void createTestElement();Erzeugt und initialisiert zugeordnetes Testelement

void configure (TestElement)Aktualisiert GUI mit Testelement

void modifyTestElement(TestElement)Aktualisiert TestElement mit GUI

Page 39: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 39

Erweitern von JMeter in Eclipse

Page 40: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 40

Erweitern von JMeter in Eclipse

� Vorbereitende Maßnahmen� Entwicklung eines Hello Samplers� Im Projekt entwickelte JMeter Plugins

Page 41: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 41

Erweitern von JMeter in EclipseVorbereitende Maßnahmen

http://apache.kgt.org/jakarta/velocity/binaries/velocity-1.4/velocity-1.4.zip(Generierung Dokumentation)

velocity-1.4.jar

Abhängig von verwendeter Datenbankjdbc*.jar

http://jce.iaik.tugraz.at/download/evaluation/index.phpiaikjce313ev.zip & isasilk306ev.zip

iaik_ssl.jarIaik_jce.jar

Bestandteil von jdk seit Version 1.4jsse.jar (1.4.1)

http://java.sun.com/products/javamail/mail.jar (1.3.2)

http://java.sun.com/products/javabeans/glasgow/jaf.htmlactivation.jar (1.0.2)

http://www.beanshell.org/bsh-1.3.0.jarbsh-1.3.0.jar

http://cvs.apache.org/dist/jakarta/bsf/v2.3.0rc1/bin/bsf-bin-2.3.0.zipbsf.jar

Where to getJar file

� Zusätzliche jar Dateien

Page 42: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 42

Erweitern von JMeter in EclipseVorbereitende Maßnahmen

� Alternativ folgende Dateien aus Build Pfad herausnehmen� org/apache/jmeter/util/JsseSSLManager.java� org/apache/jmeter/util/keystore/PKCS12KeyStore.java� Org/apache/jmeter/util/keystore/DefaultKeyStore.java� org/apache/jmeter/visualizers/MailerVisualizer.java� org/apache/jmeter/reporters/MailerModel.java� org/apache/jmeter/reporters/MailerResultCollector.java� org/apache/jmeter/assertions/**/BeanShell*.java� org/apache/jmeter/protocol/java/**/BSF*.java� org/apache/jmeter/protocol/java/**/Beanshell*.java� org/apache/jmeter/protocol/http/sampler/WebServiceSampler.java� org/apache/jmeter/protocol/http/control/gui/WebServiceSamplerGui.java

Page 43: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 43

Erweitern von JMeter in EclipseEntwicklung eines neuen Samplers

� SourceCode für GUIpublic TestElement createTestElement() {HelloSampler sampler = new HelloSampler();modifyTestElement(sampler);return sampler;

}

public void configure(TestElement element) {super.configure(element);txtToGreet.setText(element.getPropertyAsString(HelloSampler.TO_GREET));

}

public void modifyTestElement(TestElement element) {configureTestElement(element);element.setProperty(HelloSampler.TO_GREET, txtToGreet.getText());

}

public String getStaticLabel() {return "Hello Sampler";

}

Page 44: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 44

Erweitern von JMeter in EclipseEntwicklung eines neuen Samplers

� SourceCode für Testelementpublic class HelloSampler extends AbstractSampler implements Serializable{public static final String TO_GREET = "HelloSampler.ToGreet";public HelloSampler() {super();

}

public SampleResult sample(Entry e) {SampleResult res = new SampleResult();

String hello = "Hello " + this.getPropertyAsString(TO_GREET) + "!"; res.setDataType(SampleResult.TEXT);res.setResponseData(hello.getBytes());res.setSampleLabel(hello);res.setSuccessful(true);

return res;}

}

Page 45: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 45

Erweitern von JMeter in EclipseEntwicklung eines neuen Samplers

� Live - Präsentation in JMeter …

Page 46: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 46

Erweiterbarkeit von JMeterIm Projekt entwickelte JMeter Plugins

� JMX Sampler� HL7 Sampler� CommandLine / BatchSampler� AntScript*Sampler� TelnetSampler� SSH / SFTP Sampler� Comment Controller� XPath Postprocessor (analog Regular Expression Extractor)� Regular Expression Counter� HL7Assertion� FormattedActualDateFunction� …

Page 47: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 47

JMeter im Integrationstest

Page 48: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 48

JMeter im Integrationstest� Übersicht� Umgebung

� Testplanung� Testdurchführung� Vision

� Konfiguration� Test Client� SUT (System under Test)

� Spezifikation und Implementierung der Testfälle� Bündelung und Ausführung von Testsets

Page 49: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 49

JMeter im IntegrationstestÜbersicht

� Mehrere Server mit installiertem SUT� Mehrere Testclients mit eingerichteter Testumgebung

SUTmit xml, properties

Konfigurationen

SUTmit xml, properties

Konfigurationen

SUT mitxml, propertiesKonfigurationen

und Schnittstellen

SUTmit xml, properties

Konfigurationen

SUTmit xml, properties

Konfigurationen

TestClient mitmit Testdaten und

TestSoftware

Page 50: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 50

JMeter im IntegrationstestÜbersicht

Mercury TestDirector

PACS

SSI

DICOM

HL7

FBLOB

SOAP

SUT konfigurierbar überxml, properties

Page 51: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 51

JMeter im IntegrationstestÜbersicht

• Mercury TestDirector• JMeter• JMeter Testpläne• MS Excel• Eclipse• Testdaten• Testtreiber

TestClient mit

Page 52: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 52

JMeter im IntegrationstestUmgebung – aktuell (I)

Testspecification

Mercury TestDirector

Testcase1…

TestcaseN

Testlab

Testset1…

TestsetN

ClearCase Dateisystem

JMeter Testplans

TP-1.jmx…

TP-N.jmx

TestdatenTesttreiber

Excel

JMeter

0

1

2

3

4

Testset auswählen

Ergebnis speichern

mit Testplan aufrufen

Mit Testtreiber &Testdaten SUT

ausführen

Ergebnis inExcel loggen

Page 53: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 53

JMeter im IntegrationstestUmgebung – aktuell (II)

Testspecification

Mercury TestDirector

Testcase1…

TestcaseN

Testlab

Testset1…

TestsetN

ClearCase Dateisystem

JMeter Testplans

TP-1.jmx…

TP-N.jmx

TestdatenTesttreiber

Excel

JMeter

1

2

3

mit geloggtenTestplan aufrufen

Ergebnis inExcel loggen

Mit Testtreiber &Testdaten SUT

ausführen

Page 54: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 54

JMeter im IntegrationstestUmgebung – Vision (Ablösung TestDirector)

Testspecification

Eclipse

Testcase1…

TestcaseN

Testlab

Testset1…

TestsetN

ClearCase Dateisystem

JMeter Testplans

TP-1.jmx…

TP-N.jmx

TestdatenTesttreiber

JMeter

1

2

3

mit Testplanaufrufen

Ergebnis inExcel loggen

Mit Testtreiber &Testdaten SUT

ausführen

Page 55: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 55

JMeter im IntegrationstestKonfiguration

� Notwendige Konfigurationen� Test Client

� Einstellung der Testtreiber auf das Ziel-SUT� Rechnerspezifische Einstellungen (Verzeichnisangaben)

� SUT (System under Test)� XML Konfigurationen� Properties� Systemeinstellungen (z.B. /etc/hosts)

� Durchgeführt durch� AntScriptSampler für

� XSLT Transformationen� Properties Ersetzungen

Page 56: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 56

JMeter im IntegrationstestSpezifikation und Implementierung der Testfälle

� Sichtung der Schnittstellen- und funktionalen Spezifikationen� Strukturierung nach Schnittstellen(-methoden)� Testfallermittlung mit Äquivalenzklassenanalyse� Vorbedingungen des Testfalls ermitteln

� SUT Konfiguration� Extraktion benötigter

� JMeter Erweiterungen� Wiederverwendbarer Teilskripte

� Erstellung eines JMeter Skripts pro� Testfall� Vorbedingung (z.B. Tapearchiv angeschlossen)

Page 57: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 57

JMeter im IntegrationstestBündelung und Ausführung von Testsets

� Tests mit gleichen Vorbedingungen in Testsets zusammenfassen� TestDirector Testsets mit Excel auswählen� Log der Testergebnisse in TestDirector und Excel� Logs in Excel ermöglichen spätere Ausführung (ohne TestDirector)

Page 58: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 58

Fazit / Zusammenfassung

Page 59: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 59

Fazit / Zusammenfassung� �

� Java Bibliotheksunterstützung (<-> WinRunner TCL)� Erweiterungsfähigkeit� Reproduzierbarkeit der Fehlerfälle durch Entwickler� Ausbarkeit zu Last- und Stresstestszenarien� Produktivitätskurve

� �

� Resourcenverbrauch von JMeter ist hoch� Keine Planübergreifenden Includes� Keine Verwaltung mehrerer Pläne

Page 60: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 60

Fazit / Zusammenfassung� Mögliche Ausbaustufen

� Verwaltung von Testplänen in Eclipse� Aufruf einer Auswahl von Testplänen aus Eclipse� Testwerkzeuge anderer Teststufen einbinden� Verwendung als PowerO-Self-Tests im Feld� Ausbau der Stress- und Lasttestszenarien� Mehr Testtreiber direkt einbinden� Spezifischere SOAP-Aufrufe

Page 61: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 61

Weiterführende Links und Quellen

� Bücher� J2EE-Entwicklung mit Open-Source-Tools, Martin Backschat / Stefan

Edlich, Spektrum Verlag, 2004 (ein paar Seiten)� Artikel

� JMeter Tutorial unter http://wiki.apache.org/jakarta-jmeter/JMeterLinksvon Mike Stoever und Peter Lin (noch in Entstehung ;-)

� Links� JMeter Website http://jakarta.apache.org/jmeter� Eclipse Website http://www.eclipse.org

Page 62: (J)Meterweise integrieren V1.1 - infomar.de · Martin Heider, infomar software 2 Agenda Ausgangssituation Weshalb JMeter? JMeter Übersicht JMeter – Deep inside Erweitern von JMeter

Martin Heider, infomar software 62

Besten Dank

Martin HeiderInfomar [email protected]