EI - Funktionella tester

Syftet med de funktionella testerna är att verifiera reglerna i tjänstekontraktet Engagemangsindex. Testerna är implementerade i ett SOAP-UI projekt. 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.
  5. Om testerna körts mot https behöver certifikat anges under Preferences -> SSL Settings 
    1. Ange keystore samt keystore password.
  6. Spara projektet genom att högerklicka på projektet "SKLTP-EI" och tryck på "Save Project"

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:


    1. 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


 

Datum: 
Version: 
Miljö: 
Tester utförda av: 
Länk till testinstruktion

 

Kommentar: 

MANUELLA TESTER


Datum: 
Version: 
Miljö: 
Tester utförda av: 
Länk till testinstruktion

 

Kommentar: 
Test
Resultat
Kommentar
Test EI.1  
Test EI.2  

 

EI-Filter testfall

Filter är något som infördes i EI-1.1 och för denna del finns idag inga automatiska tester. 

Sätta upp en ProcessNotification producent med netcat

http://www.thegeekstuff.com/2012/04/nc-command-examples/

Netcat på port 2345

echo -e "HTTP/1.1 200 OK\n\n $(cat processnotification-response.xml)" | nc -l 2345

processnotification-response.xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header/>
   <soap:Body>
      <ns2:ProcessNotificationResponse xmlns="urn:riv:itintegration:engagementindex:1" xmlns:ns2="urn:riv:itintegration:engagementindex:ProcessNotificationResponder:1" xmlns:ns3="urn:riv:itintegration:registry:1">
         <ns2:ResultCode>OK</ns2:ResultCode>
      </ns2:ProcessNotificationResponse>
   </soap:Body>
</soap:Envelope>

Sätta upp testdata i TAK

Testproducent

Testproducent som pekar på porten exponerad av netcat, beskrivet ovan.

HSA-ID: NETCAT

Adress: http://localhost:2345

Beskrivning NETCAT testproducent


Logisk adressat

HSA-ID: NETCAT

Beskrivning: En logisk adress som används för tester mot en ändpunkt exponerad av NETCAT

 

Logisk adress


 

Anropsbehörighet

Exempel konsument, sätt korrekt för testerna som skall utföras

För varje ändring av filter krävs:

1, Uppdatera i TAK

2, Reset cache i VP

3, Starta om EI (touch på mule.xml i backend)

 

Testfall 0: Inga filter definierade

 Filter i TAK Testdata i Update
Subscriber1har inget filter definieratSkall få en notifieringServicedomain: TEST-DOMAIN1

Testfall 1: Filter som matchar

 Filter i TAK Testdata i Update
Subscriber1ett filter definierat med domän: TEST-DOMAIN1Skall få en notifieringServicedomain: TEST-DOMAIN1

Testfall 2: Filter som inte matchar

 Filter i TAK Testdata i Update
Subscriber1ett filter definierat med domän: TEST-DOMAIN-UNKNOWNSkall inte få en notifieringServicedomain: TEST-DOMAIN1

Testfall 3: Filter och kategori som matchar

 Filter i TAK Testdata i Update
Subscriber1ett filter definierat med domän: TEST-DOMAIN1, Category: TEST-CATEGORY1,  TEST-CATEGORY2Skall få en notifieringServicedomain: TEST-DOMAIN1, Category: TEST-CATEGORY1

Testfall 4: Kategorier matchar inte

 Filter i TAK Testdata i Update
Subscriber1ett filter definierat med domän: TEST-DOMAIN1, Category: TEST-CATEGORY-UNKNOWNSkall inte få en notifieringServicedomain: TEST-DOMAIN1, Category: TEST-CATEGORY1

Testfall 5: Flera engagemangsposter, varav ett filtreras bort

 Filter i TAK Testdata
Subscriber1ett filter definierat med domän: TEST-DOMAIN1Skall få en notifiering2 engagemangsposter med TEST-DOMAIN1
och TEST-DOMAIN-UNKNOWN 

Testfall 6: Två subscribers, en med filter som filtrerar bort

 Filter i TAK Testdata
Subscriber1ett filter definierat med domän:

TEST-DOMAIN-UNKNOWN

Skall inte få en notifieringServicedomain: TEST-DOMAIN1
Subscriber2har inget filter definieratSkall få en notifieringServicedomain: TEST-DOMAIN1

Testfall 7: Två subscribers, båda med filter på domän men olika kategorier

 Filter i TAK Testdata i Update
Subscriber1ett filter definierat med domän: TEST-DOMAIN1, Category: TEST-CATEGORY1Skall få en notifieringServicedomain: TEST-DOMAIN1, Category: TEST-CATEGORY1
Subscriber2ett filter definierat med domän: TEST-DOMAIN1, Category: TEST-CATEGORY2Skall inte få en notifieringServicedomain: TEST-DOMAIN1, Category: TEST-CATEGORY1