41
OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 1

 · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.061

����������������� ���������������

������������������ ��������������� �

Page 2:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.062

• ��� �������� ��������������������

• ��������������������

• �������������������������

• ��������!�"

• #�$��%&������������

• '�����(�����

Themen/Agenda

Page 3:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.063

Ausgangssituation

Page 4:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.064

• )�������)��������"

Ausgangssituation

*+������,-��.���� ��/�������������������������

����

0����� ��/��� ��������

Page 5:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.065

• )-� �������� ����������������������

• 1���������������� �������������������� �

• 1��������+������$�1�������������

• 1���+�������-����������������������

• ����������� ���� �#��������

• �$�������������#�������� ���+���������

• 2��������������������3������

• ��������������������4�������� �������

Ausgangssituation

Page 6:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.066

• �����������,�������������"

• 5���� ����6���3������5����� ����������

• '7� ������������������������4�������

• &������$��

• ���������������������������� � 3�8���088

• +��������� �����������������

• 1��������������9�4����1����� ��:

• ������ ��;�����-�������/����(�������

• '���� ��<������� ������

• �������

• +������������9����� 1����� ��:

• 1������������������

Ausgangssituation

Page 7:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.067

• ;������ ������������� ��������

Ausgangssituation

HTTP

PUTGETDELETE

TrackWorld Server

Presentation(Servlet)

PersistenzBusiness Logik

ActionManager

EventBroker

Access

SQLServer

MySQL

Unzip /Zip

Service

Filesystem

Anhang

HTTP

ZIPXML<tw:request><tw:action>...</tw:action></tw:request>

SQL-Generator

DBMSMapper

WebClient

Page 8:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.068

Verwendete Testumgebung

Page 9:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.069

• 1��=���������"

• /�����/����� �-����������� ��1��������

• >?���� �-�1���������� ��'��������

• <?@�-������� ��;�����-������/���A�������

• ����$��/���/�3����� ?�����

• > �� ������-��� �� �������

Verwendete Testumgebung

Page 10:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0610

• /�����/����� �-����������� ��1���������������

• ���7��� �����+����������3�

• 5�����&B���

• 5�����5�������

• 5�����&����

• ���������������������������

• 5������������������

• @����B��� ��������������

• ������������������

• 5������������3�,���������������� ��,������

Verwendete Testumgebung

Page 11:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0611

• /�����/����� �-����������� ��1���������������

Verwendete Testumgebung

Page 12:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0612

• /�����/����� �-����������� ��1���������������

Verwendete Testumgebung

Page 13:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0613

• >?���� �-�1���������� ��'��������

• ������������6=��<����<�'@�<�>@5/��/<�"

• ���7��� ��3������������-�������3��� ������,� ���

• C����� �������� ���� �����A�������#�����

• ���� �������������������� �<�����

• ,�����������������D�'�

• �2�����

Verwendete Testumgebung

Page 14:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0614

• >?���� �-�1���������� ��'��������

Verwendete Testumgebung

Page 15:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0615

• >?���� �-�1���������� ��'��������

Verwendete Testumgebung

Threadgroup

Controller

Listener

Testplan

Config

Sampler

Timer

Assertions

Pre-/Postprocessors

Page 16:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0616

• <?@�-������� ��;�����-������/���A�������

• #����

• ����������'���$���������

• ����/���

• �����������/���

• @����$�����/���9/��B<����@��� ���:

• <���1� �-�3��� ������1@��9$E5E� �����:

• ������������,�����,�������

• �����,�����>�3�����D<���������������

• ,�����������������D�'�

• �2�����

Verwendete Testumgebung

Page 17:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0617

• <?@�-������� ��;�����-������/���(�������

Verwendete Testumgebung

Page 18:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0618

• ����$��/���/�3����� ?�����

• ����������������/�3����� )����

• +������?�������5�� ��&����

• 5B�� ���1������������

• ��������B

• ������

• ��������������6��4��D?'�=�?'

• ?���� 3�3��� ������/�3����� �������

• �2�����

Verwendete Testumgebung

Page 19:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0619

• ����$��/���/�3����� ?�����

Verwendete Testumgebung

Page 20:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0620

• > �� ��-��� �

• ?�����?���������-�5�����

• &�������������

• ������ ���assertEquals�assert(Not)Null�assert(Not)Same

• Test�TestCase�TestSuite

• ����,���

• �2�����

• ������F#�������

• �������� ���������������2������3����

• @Test�@Before9/����:�@After9/����:�@Ignore

• �������� ���4�� ����4 ������ ���<��������

• �����,��� ��������

Verwendete Testumgebung

Page 21:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0621

• 1��2��������

• >�3�2/��

• ���B�� � ��?� ���G� ��

• =�('@51?����B@������

• �����������$���

• #��H#��2����

• )���

Verwendete Testumgebung

Page 22:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0622

Tests und Testautomatisierung

Page 23:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0623

• ;����� ��������$�����

Tests und Testautomatisierung

������ ��������

������ ����� ����

������ �������������� �����

������ ���������������

���������������

���������

Page 24:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0624

• ������$�������)���� ����� ������-�/���I������

Tests und Testautomatisierung

������ ���� �����

������ ����� �����

������ �������������� � �����

������ ����������������

���������������

��������� ���������������� !����

������������ "�� !����

����� ������ �"�������#���������

Page 25:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0625

• ;����� ��������� ��-����

Tests und Testautomatisierung

�������� ���

��� "��

���������� �����

�����$

%������ �����

%������� �����

%���������������� � �����

%������������������

��&�����������

'��������'����

���������������

���������

Page 26:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0626

• ������� ��-������3��������)���$����

Tests und Testautomatisierung

���������� �����

�����$

%������ �����

%������� �����

%���������������� � �����

%������������������

��&�����������

'��������'����

(����)*++'

*++'

�+�)(���,���

(+����)*++'

(+����)*++'

(����)*++')(+����)(���,���)�+�

�������������)'��

Page 27:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0627

• 1��������������9�4����� ����������:

• �������

• @����������������3���� ����������

• ���� ����3�>?�����<����

• ���� �����3� �������������>?���� ��������

• �����������>?���� �2������

• �����������������������������/�����/�����

• 2��$�

• 2� ����3���3�� �����������3���/����3���������J�

• C������� ������3��/������7�����#�����������

• �� �������������������-��������I������

Tests und Testautomatisierung

Page 28:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0628

• ������ ��;�����-������/����(�������

• �������

• ���� ����3�<?@�>2/��H�??��/�����/�����

• ��� ������3�<?@����� �����<�������

• 1���������������<�������3�/�����-��??�

• ������������2������� �-�G��������

• ������������������������������/������/�����

• 2��$�

• �����-�$��$���� ��3�

• #������/����������/��B�<���� /���

• ;����� ���3�/���� C����'���

• 5�������������������� ���

Tests und Testautomatisierung

Page 29:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0629

• '���� ��<������� ������

• �������

• ���������3�'����������

• �B�����$���3�������

• ����������������B�

• �������������������B��-���&��������

• '�����������>?���� ���������-�C 1�������

• <������� �������-���$��� ���������������

• ��������/�����/����� �����1�������������

• 2��$�

• �������$��5���������������������

• <������� ��)�����-����3���� ����������

Tests und Testautomatisierung

Page 30:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0630

• �������9������ ����������:

• �������

• > �� $��������$������ ��������� �� ���

• ���B?� ��?� ���G� �� $���������������$���� �� ���

• ��������?����B�@������

• �������3�/���$��������������������

• 2��$�

• @�������������������� ���

• 5������'����������������3�#�����

Tests und Testautomatisierung

Page 31:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0631

• �������5��������������������

• 1�� �������������

• ?��/�����/����� ������������������

Und so läuft‘s…

XMLahead

Page 32:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0632

Java NCSS Ant-Task

<taskdef name="javancss" classname="javancss.JavancssAntTask"/>

<target name="run-jncss"><property name="oop.programs.dir" value="C:/projects/oop2006/programs" />

<javancss srcdir = "src"generateReport = "true"abortOnFail = "false"outputfile = "javancss_metrics.xml"format = "xml"includes = "**/*.java"excludes = "**/*Test.java" />

<xslt in = "javancss_metrics.xml" out = "javancss_metrics.html"

style = "${oop.programs.dir}\javancss21.41\xslt\javancss2html.xsl" /></target>

Page 33:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0633

PMD Ant-Task

<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>

<target name="run-pmd">

<property name="oop.programs.dir" value="C:/projects/oop2006/programs" />

<pmd><ruleset>basic</ruleset>

<formatter type = "xml" toFile = "pmd-report.xml"/>

<fileset dir = "src"><include name = "**/*.java"/>

</fileset></pmd>

<xslt in = "pmd-report.xml" out = "pmd-report.html" />

style = "${oop.programs.dir}\pmd-3.4\etc\xslt\pmd-report-trackworld.xslt" /></target>

Weitere Regeln z.B.strictexceptiondesignunusedcodefinalizerssunsecure

Page 34:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0634

Emma Ant-Task – Instrumentierung

<taskdef name="emma" resource="emma_ant.properties" />

<target name="run-emma-instrument">

<emma enabled="true" >

<instr instrpath = "deploy/lib/belox-trackworld.jar"outfile = "deploy/lib/coverage.em"mode = "overwrite">

<filter excludes = "*Test *.test.*" /></instr>

</emma></target>

Page 35:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0635

Emma Ant-Task – Reporting

<target name="run-emma-report"><emma enabled="true" >

<report sourcepath = "src"sort = "+block,+name,+method,+class,+line"metrics = "method:70,block:80,line:80,class:100">

<infileset dir="deploy" includes="*.em, *.ec" />

<html outfile = "coverage.html"depth = "method"columns = "name,class,method,block,line" />

</report></emma>

</target>

Weitere mögl. Elemente:txtxml

Page 36:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0636

JMeter Ant-Task

<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>

<target name="run-jmeter">

<property name="oop.programs.dir" value="C:/projects/oop2006/programs" />

<jmeter jmeterhome = "${oop.programs.dir}/jakarta-jmeter-2.1.1"resultlog = "JMeterResults.jtl">

<property name = "twServerIp" value = "localhost"/><property name = "twServerPort" value = "80"/>

<testplans dir = "jmeter" includes = "*.jmx"/></jmeter>

<xslt in= "JMeterResults.jtl" out = "JMeterResults.html" />

style= "${oop.programs.dir}/jakarta-jmeter-2.1.1/extras/jmeter-results-detail-report.xsl" />

</target>

Page 37:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0637

CruiseControl Konfiguration

<cruisecontrol>

<property name="cchome"value="..\..\programs\cruisecontrol-2.3.1" />

<project name = "TrackWorld" buildafterfailed = "true">

<modificationset quietperiod ="5"requiremodification ="true">

<cvs localWorkingCopy="projects/TrackWorld"/></modificationset>

<schedule interval = "30"><ant anthome = "${cchome}\apache-ant-1.6.3"

buildfile ="build.xml"target ="deploy test"uselogger ="true"usedebug ="false" />

</schedule>

<log><merge dir="unittest"/>

</log>

<publishers><artifactspublisher

dest = "artifacts/TrackWorld"file = "JMeterResults.html" />

</publishers>

</project>

</cruisecontrol>

Page 38:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0638

Fazit / Zusammenfassung

Page 39:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0639

Fazit / Zusammenfassung

Schneller Aufbau einer TestumgebungOhne Installationsaufwand (Copy-Deployment)

AutomatisierbarkeitANT / CruiseControlKontinuierlicher Build, Test, Review

Offene Formate für ReportingXSLT-Templates bereits vorhandenWeitere sind im Web verfügbar

Unterstützung nahezu aller Source Control SystemsPermanentes Review

Kleinere BugsTiefe Verzeichnisstruktur verwirrt CruiseControlXSLT-Stylesheets nicht immer sauber programmiert

Page 40:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0640

Weiterführende Links und Quellen

- 5- ���- ���������&���*��.� "�������(���� �/�)/���"��������)

����"� 0�����1223- ����.�����������(����)(����������")����"� 0�����1223- (1**!*��.� "�������4���!���� �!����)+������� "� ��� 5������*��� �)

���"����0�����)12267�������������8

- '���- �����������������955 ����� ������:���� ������:���- (+���� ����955;�"����:��� ��:���5;�����- *++'����955����:���� ������:���- �+�����955���:���� ������:���- (���� ����955...:;����:���- (���,�������955...:" ���:��5 ������5;���5;���� ��- /�����955���: 1: �� ���/������ ����955��������:���

- �������- �����%���� ����9<'���������������/������������� (���=

����955...: �:���:���5>;������5������5�����26:���

Page 41:  · OOP 2006 Martin Heider & Andreas Oetjen 19.01.06 15 • >? -1 ˝ ˘ ’ Verwendete Testumgebung Threadgroup Controller Listener Testplan Config Sampler

OOP 2006Martin Heider & Andreas Oetjen

19.01.0641

Fragen?Aber gern …

Martin HeiderInfomar [email protected]

andreas oetjenbelox software gmbh

[email protected]