Indhold

Indledning

Dette dokument beskriver kort omkring udvikling og afvikling af jmeter tests.


Krav

Erstatnings-cpr-løsningen har følgende krav til svartider (krav 19):

  1. Performance

    Der forventes en lille belastning på eCPR servicen svarende til 10 transaktioner per minut (continuous load). Løsningen skal under dette load kunne håndtere svartider som følger:
  • Gennemsnit mindre end eller lig 1000 ms
  • 95% under 1250 ms
  • 99% under 2000 ms

1.3. Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

1.0

15-11-2018

Openminds

Oprettelse

Testdata

Byg


Opsæt

Clone performance projected

git clone https://USER@bitbucket.org/openmindsaps/performance.git
svn checkout https://svn.nspop.dk/svn/openminds/Performance/trunk

Byg med mvn clean install.

Download jmeter version 2.9 binary. Gem evt. Under c:\tools

I C:\tools\apache-jmeter-2.9\bin\user.properties skal følgende linier tilføjes. Erstat c:/dev/openminds_minlog/performance/ med stien til hvor performance projecte er tjekket ud.

search_paths=c:/Users/ole/.m2/repository/com/arosii/nsp/jmeter-minlog2/1.7.5-SNAPSHOT/jmeter-minlog2-1.7.5-SNAPSHOT.jar;c:/dev/openminds_minlog/performance/modules/jmeter-gw/target/jmeter-gw.jar;c:/dev/openminds_minlog/performance/modules/jmeter-dcc/target/jmeter-dcc.jar;c:/dev/openminds_minlog/performance/modules/jmeter-sdm/target/jmeter-sdm.jar;c:/dev/openminds_minlog/performance/modules/jmeter-sts/target/jmeter-sts.jar;c:/dev/openminds_minlog/performance/modules/jmeter-common/target/jmeter-common.jar;c:/dev/openminds_minlog/performance/modules/jmeter-minlog/target/jmeter-minlog.jar;c:/dev/openminds_minlog/performance/modules/jmeter-dds/target/jmeter-dds.jar;c:/dev/openminds_minlog/performance/modules/jmeter-consent/target/jmeter-consent.jar

Erstat c:/Users/Username/.m2/ med stien til hvor .m2 folderen er på maskinen (classpath separator på mac/linux er : ).

user.classpath=C:/Users/ole/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar;C:/Users/ole/.m2/repository/commons-discovery/commons-discovery/0.2/commons-discovery-0.2.jar;C:/Users/ole/.m2/repository/axis/axis/1.4/axis-1.4.jar;C:/Users/ole/.m2/repository/ca/juliusdavies/not-yet-commons-ssl/0.3.9/not-yet-commons-ssl-0.3.9.jar;C:/Users/ole/.m2/repository/org/owasp/esapi/esapi/2.0.1/esapi-2.0.1.jar;C:/Users/ole/.m2/repository/org/opensaml/openws/1.5.4/openws-1.5.4.jar;C:/Users/ole/.m2/repository/joda-time/joda-time/2.2/joda-time-2.2.jar;c:/Users/ole/.m2/repository/org/opensaml/opensaml/2.6.4/opensaml-2.6.4.jar;c:/Users/ole/.m2/repository/org/opensaml/xmltooling/1.4.4/xmltooling-1.4.4.jar;c:/Users/ole/.m2/repository/dk/sosi/seal/seal/2.4.5/seal-2.4.5-tests.jar;c:/Users/ole/.m2/repository/com/arosii/nsp/jmeter-sts/1.7.5-SNAPSHOT/jmeter-sts-1.7.5-SNAPSHOT.jar;c:/Users/ole/.m2/repository/org/apache/ws/security/wss4j/1.5.12/wss4j-1.5.12.jar;C:/Users/ole/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.51/bcprov-jdk15on-1.51.jar;C:/Users/ole/.m2/repository/com/unboundid/unboundid-ldapsdk/2.3.1/unboundid-ldapsdk-2.3.1.jar;C:/Users/ole/.m2/repository/org/apache/santuario/xmlsec/1.4.8/xmlsec-1.4.8.jar;c:/Users/ole/.m2/repository/com/arosii/nsp/jmeter-minlog2/1.7.5-SNAPSHOT/jmeter-minlog2-1.7.5-SNAPSHOT.jar;c:/Users/ole/.m2/repository/dk/sosi/seal/seal/2.4.5/seal-2.4.5.jar;c:/Users/ole/.m2/repository/dk/sosi/testtools/testtools/2.4.5/testtools-2.4.5.jar;C:/Users/ole/.m2/repository/org/antlr/antlr-runtime/3.3/antlr-runtime-3.3.jar;C:/Users/ole/.m2/repository/org/antlr/stringtemplate/4.0.2/stringtemplate-4.0.2.jar;c:/Users/ole/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar;c:/Users/ole/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar;


Nu kan jmeter startes vha. C:\tools\apache-jmeter-2.9\bin\jmeter.bat eller ./jmeter.sh


Der er fire test templates

Performance tests

Lookup.

Der er lavet en LookupRequestSampler. Den tager et cpr som input og forventer der er et IDCard på threadcontexten. Med inputtet laver den et kald til GetLogStatementsForCPRPerson.

Se eksemplet her.

tests/minlog2/src/test/jmeter/templates/testplans/lookup.template.jmx


Lookup on behalf of 

Her laves der lookup on behalf of hvor man enten benytter et medarbejder certifikat eller et firmacertifikat.

I setup fasen indhentes certifikatet og herefter startes selve performance testen.

Lookup on behalf of sampleren tager et cpr som input. Så det er muligt at sætte testen op så man indlæser en fil med flere cprnumre og bruger forskellige hver gang et kald laves.

Vi har lavet et eksempel på hvordan det kan sættes op her.

tests/minlog2/src/test/jmeter/templates/testplans/lookup_onbehalfof.template.jmx


Lookupid.

Under setup hentes der nemind certifikater for de test brugere der benyttes. Lookupidentitytoken sampleren tager cpr, procurator cpr og subject som input. De nemid certifikater der hentes ind gemmes i et statisk map så de kan genbruges af lookupid sampleren i selve performance testen.

Lookupidws sampleren tager et cpr som input. Den bruger cpr til at hente certifikatet fra setup af og laver hefterter et kald til minlog2 hvor certifikatet benyttes.

Vi har lavet et eksempel på hvordan det kan sættes op her.

tests/minlog2/src/test/jmeter/templates/testplans/lookupidws.template.jmx



Registration

Vi har lavet et eksempel på hvordan det kan sættes op her.

tests/minlog2/src/test/jmeter/templates/testplans/registration.template.jmx