Gå till slutet av bannern
Gå till början av bannern

EI - Testinstruktioner

Hoppa till slutet på meta-data
Gå till början av metadata

Du visar en gammal version av den här sidan. Visa nuvarande version.

Jämför med nuvarande Visa sidhistorik

« Föregående Version 18 Nästa »


På denna sidan finns instruktioner för hur EI ska testas efter deploy i QA miljö. Utöver dessa tester utförs automatiserade tester då EI byggs. Dessa finns  beskrivna i SAD:en.

Testrapporter från EI tester hittar ni här.

Funktionella tester

I SoapUI-projektet finns det exempelrequest för Update, FindContent och ProcessNotification. Förutom dessa request finns även tester som verifierar majoriteten av de regler som finns beskrivna i tjänstekontraktet.

Testbeskrivning

Syftet med de funktionella testerna är att verifiera reglerna i tjänstekontraktet. Testerna dokumenteras endast i SOAP-UI projektet.

Begränsningar

Det finns inte automatiserade tester för att verifiera att notfieringar skickas korrekt efter uppdateringar med Update och ProcessNotification. Detta steg måste göras manuellt enligt instruktionerna nedan.

Instruktioner för att genomföra testerna

Förberedelser

För att kunna köra både request och tester behöver man anpassa miljön för om man ska köra testerna mot utvecklingsmiljön (MuleStudio) eller mot exempelvis QA-miljön:

 

  1. Hämta SoapUI-projektet med namnet SKLTP-EI-soapui-project.xml
  2. HSA-ID. I projektinställningarna ("Custom properties") finna möjligheten att  välja HSA_ID_QA och HSA_ID_DEV för inställningen HSA_ID.
  3. Endpoints. För varje tjänst behöver man uppdatera vilken endpoints som ska användas. I och med att testerna återanvänder alla tre tjänster behöver således uppdatera endpointen för alla tre tjänster.
    Exempel på metod för att välja QA som endpoint:
    Dubbelklicka på UpdateResponderBinding, välj "Service Endpoints".
    Välj "https://qa.esb.ntjp.sjunet.org:20000/vp/Update/1/rivtabp21" och tryck knappen "Assign.".
    Välj alternativet "All requests och TestRequests" och tryck på ok.
  4. Upprepa detta för FindContentWSBeanServiceSoapBinding samt ProcessNotificationResponderBinding.

Köra tester

Nu är det klart att köra testerna. Testerna kan köras en och en eller alla.

För att köra alla test, högerklicka på projektet (SKLTP-EI) -> Launch Testrunner. Välj "All" i TestCase och TestSuite.
Tryck sedan till sist på "Launch".

Manuella Tester

Test EI-1: Verifiera att ProcessNotification fungerar vid Update

Verifiera att Process Notification anropas vid Update. Än så länge finns det inte funktionalitet på plats för
att göra det automatiskt. Så nu blir man tvungen att göra det manuellt genom att kolla på loggar. Beskrivningen
beskriver stegen att göra det i QA men det går att göra i test respektive utvecklingsmiljön. Det viktiga är att det finns
åtminstone 1 aktiv subsciber. 

  1. Verifiera att finns åtminstone en aktiv subscriber. Görs enklast genom att kolla i admingränssnittet i ActiveMQ. 
  2. Logga in på en qa-noden som mule-användaren. Gå till logg-katalogen (/home/mule/tp/mule-enterprise-standalone-3.3.1/logs)
  3. tail -f mule-app-ei.log
  4. Gör ett Update-anrop med SoapUI. Förslagsvis körs testet "Update - OK - valid request"
  5. Om testet gått igenom, kolla att det finns en msg-in, req-out samt en resp-in för en subsciber. Exempel på en hel logg från process-steget:

    013-06-17 08:44:00,761 INFO  org.mule.module.logging.DispatchingLogger - soi-toolkit.log
    ** logEvent-info.start ***********************************************************
    IntegrationScenarioId=
    ContractId=
    LogMessage=msg-in
    ServiceImpl=process-service
    Host=svr-vp-qa (192.168.16.210)
    ComponentId=skltp-ei-application-mule-backend-app-1.0.0
    Endpoint=jms://skltp.ei.process
    MessageId=4b096fc0-d719-11e2-81ae-b9a606e846d9
    BusinessCorrelationId=
    BusinessContextId=
    ExtraInfo=
    Payload=
    ** logEvent-info.end *************************************************************
    2013-06-17 08:44:00,784 INFO  org.mule.module.logging.DispatchingLogger - soi-toolkit.log
    ** logEvent-info.start ***********************************************************
    IntegrationScenarioId=
    ContractId=
    LogMessage=msg-out
    ServiceImpl=process-service
    Host=svr-vp-qa (192.168.16.210)
    ComponentId=skltp-ei-application-mule-backend-app-1.0.0
    Endpoint=jms://topic:skltp.ei.notify
    MessageId=4b096fc0-d719-11e2-81ae-b9a606e846d9
    BusinessCorrelationId=
    BusinessContextId=
    ExtraInfo=
    Payload=
    ** logEvent-info.end *************************************************************
    2013-06-17 08:44:00,794 INFO  org.mule.module.logging.DispatchingLogger - soi-toolkit.log
    ** logEvent-info.start ***********************************************************
    IntegrationScenarioId=
    ContractId=
    LogMessage=msg-in
    ServiceImpl=notify-service-MVK-SYS
    Host=svr-vp-qa (192.168.16.210)
    ComponentId=skltp-ei-application-mule-backend-app-1.0.0
    Endpoint=jms://topic:skltp.ei.notify
    MessageId=4b0e78db-d719-11e2-81ae-b9a606e846d9
    BusinessCorrelationId=
    BusinessContextId=
    ExtraInfo=
    Payload=
    ** logEvent-info.end *************************************************************
    2013-06-17 08:44:00,802 INFO  org.mule.module.logging.DispatchingLogger - soi-toolkit.log
    ** logEvent-info.start ***********************************************************
    IntegrationScenarioId=
    ContractId=
    LogMessage=req-out
    ServiceImpl=notify-service-MVK-SYS
    Host=svr-vp-qa (192.168.16.210)
    ComponentId=skltp-ei-application-mule-backend-app-1.0.0
    Endpoint=http://localhost:8080/vp/ProcessNotification/1/rivtabp21 (POST)
    MessageId=4b0e78db-d719-11e2-81ae-b9a606e846d9
    BusinessCorrelationId=
    BusinessContextId=
    ExtraInfo=
    Payload=
    ** logEvent-info.end *************************************************************
    2013-06-17 08:44:01,075 INFO  org.mule.module.logging.DispatchingLogger - soi-toolkit.log
    ** logEvent-info.start ***********************************************************
    IntegrationScenarioId=
    ContractId=
    LogMessage=resp-in
    ServiceImpl=notify-service-MVK-SYS
    Host=svr-vp-qa (192.168.16.210)
    ComponentId=skltp-ei-application-mule-backend-app-1.0.0
    Endpoint=jms://topic:skltp.ei.notify
    MessageId=4b39328f-d719-11e2-81ae-b9a606e846d9
    BusinessCorrelationId=
    BusinessContextId=
    ExtraInfo=
    Payload=
    ** logEvent-info.end *************************************************************
    
    
    

 

 

Test EI-2: Verifiera att ProcessNotification anrops vid ProcessNotification

Detta test är i princip samma som för beskrivningen för Update förutom att man gör ett testanrop med
ett ProcessNotification-test istället. Testet ProcessNotification - OK - valid request  är ett lämpligt val.

Dokumentation av testresultat

Det ska dokumenteras att testerna utförts samt på vilken mjukvaruversion man kört dem. Fyll i denna tabellen och spara den under EI Testrapporter.

AUTOMATISERADE TESTER

DatumEI versionVP versionAlla / Vissa tester utfördaTester utförda avResultat
      
Kommentar:<eventuellt någon kommentar om resultatet>

MANUELLA TESTER

DatumEI versionVP versionTester utförda av
    
TestResultatKommentar
Test EI-1  
Test EI-2  

 


Lasttester

Testbeskrivning

Syftet med lasttesterna är att belasta systemet för att verifiera < .... något mer om syftet>

SOAP-UI projektet med lasttesterna heter SKLTP-EI-loadtests-soapui-project.xml. Det har tester för Update och Find Content.
De tester som finns är:

  • Update med 1, 10, 100, 1000 engangemang
  • FindContent med 2 eller alla element.

Testerna är uppdelade in olika antal samtidiga klienter (trådar), detta för att testa med olika antal anrop per sekund. <FIXA MENINGEN. OK?>

Instruktioner för att genomföra testerna

Förberedelser

Det är viktigt att ställa in rätt endpoints för varje tjänst om testerna inte
ska köra mot qa1. Detta görs på följande sätt:

<JAg ändrade meningen ovan. Är detta OK?>

Testerna är konfigurerade att köra mot QA1. Om man ska köra mot någon annan nod måste man ställa in rätt endpoints för varje tjänst.  Detta görs på följande sätt:

  1. Dubbelklicka på UpdateResponderBinding, välj 'Service Endpoints'.
  2. Välj exempelvis 'https://qa.esb.ntjp.sjunet.org:20000/vp/Update/1/rivtabp21' och tryck knappen 'Assign'.
  3. Välj alternativet 'All requests och TestRequests' och tryck på ok.

Upprepa detta för FindContentWSBeanServiceSoapBinding samt ProcessNotificationResponderBinding.

Köra lasttester i SoapUI.

För att köra ett simpelt test i klicka TestCaset och sedan Loadtests.
Dubbellklicka för att få fram ett fönster där högerpilen finns längst upp på fönstret.

Som resultat ser man antal test per sekund, genomsnittlig svarstid o.s.v.

Köra lasttester i SoapUI från terminalen

För att köra lasttesterna från SoapUI behöver följande göras

  • Hämta skript och installera soapUI samt Ruby om maskinen inte kör på osx
  • Gå in i katalogen loadtest_runner och öppna filen run.sh. 
  • Sätt variablerna soapUIpath (sökväg till soapui-katalogen) samt remote_host som är adressen som cpu-monitoreringen körs mot. För att kunna köra ssh-monitorering 
    krävs antingen extisterande sshanslutningen ControlMaster eller att anslutningen använder nycklar. 
  • För att verifiera att det fungerar, skriv ssh ADDRESS_TILL_REMOTE_HOST i terminalen och verifiera att det går att logga in utan att ange lösenord.
  • Kör ./run.sh från terminalen. Tar idag cirka 60 minuter att slutföra

Resultat från skriptet

Från skriptet kommer man se statistik kring svarstider för de olika testerna,
antal tester per sekund samt last och cpuinfo.


JMeter

Då SoapUI inte verkar kunna hantera keep-alive syns ingen märkbar skillnad i svarstiderna när keep-alive är på och när det är avstängt. Därför finns några av lasttesterna posterade till JMeter för där på ett korrekt sätt kunna göra tester med keep-alive.

Köra lasttester med JMeter

  • Öppna SKLTP-EI-loadtests-jmeter.jmx med JMeter
  • I menyn, välj SSL-manager ange certifikatet som ska användas. (Jag har använt
    tk_qa_auth.p12)
  • Aktivera den eller de threadgroups som ska köras och tryck sedan på kör.
  • Resultatet visas som helhelt för den aktuella trådgruppen samt för varje
    soaprequest i trådgruppen.

Tänk på att de olika trådgrupperna har olika inställningar för antal  samtidiga klienter och körlängder. Detta ställs in i trådgruppsinställningarna (klicka på den valfri Thread Group).

Dokumentation av testresultat

Testrapport ska fyllas i och sparas under EI Testrapporter.


Robusthetstester

<Här ska vi ha någon instruktion, klippt från rapporten>

  • Inga etiketter