For at kunne køre automatiserede tests af brugsscenarier som baserer sig på login via SEB IdP / NemLog-in IdP (autentifikation med MitID Erhverv) eller login via Lokal IdP (egne identifikationsmidler) er der to mulige tilgange:

1) Simulering af login-flowet gennem selv-udstedelse af bootstraptokens

Som en del af ens automatiseret test kan man selv danne bootstraptokens (fx via Seal bibliotekerne, se Teknisk overblik til anvendere#Biblioteksunderstøttelse), signere dem med eget certifikat og efterfølgende omveksle dem via BST2SOSI snitfladen.

Dette kræver at man oprettes som trusted bootstraptoken udsteder hos SOSI-STS i NSP testmiljøerne, hvilket gøres via BST2SOSI Medarbejderbilletomveksling (Vælg "Anden tokenudsteder" og angiv oplysninger om eget certifikat som benyttes til signering af bootstraptokens).

2) Afvikling af login-flowet i en browser gennem et tool for automatiseret webtest

Der findes en række tools som gør det muligt at scripte en brugerinteraktion med en browser. I og med NemLog-ins pre-produktionsmiljø (DevTest4 / tidligere også kald betatestmiljø) gør det muligt at oprette testbrugere, som til testformål kan logge ind med brugernavn/password kan også autentifikation i NemLog-in let scriptes.

Til inspiration er der her inkluderet et simpel eksempel på et Java testcase baseret på open-source og non-profit værktøjet https://www.selenium.dev/.

I eksemplet tilgås en demo-applikation som er tilsluttet SEB IdP (det kunne være ens egen applikation), vælges "NemLog-in" i oversigten over mulige login-muligheder hos SEB IdP, derefter vælges "Test Login" fanen ho NemLog-in og brugernavn/password angives, efterfølgende vælges "medarbejder-kontekst" i NemLog-in.

OBS: Bemærk at automatiserede webtests som denne kan begynde at fejle hvis/når designet i de webløsninger som indgår i flowet (SEB, NemLog-in) ændres.


import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SeleniumTest {

@Test
public void SEB_NL_flow() {
WebDriver driver = new FirefoxDriver();
driver.get("https://t-seb.dkseb.dk/samlclaimapp17/");
WebElement myPage = driver.findElement(By.xpath("//a[@href=\"MyPage.aspx\"]"));
myPage.click();

WebElement nemLoginLink = driver.findElement(By.id("_ca545244-d759-480a-a87b-e3a578aa3a58"));
nemLoginLink.click();

WebElement testLoginFane = driver.findElement(By.id("LoginMenuItem_3"));
testLoginFane.click();

WebElement userNameField = driver.findElement(By.id("MitIdSimulator_InputUsername"));
WebElement passwordField = driver.findElement(By.id("MitIdSimulator_InputPassword"));
WebElement submitButton = driver.findElement(By.id("MitIdSimulator_Submit"));
userNameField.sendKeys("0205756078");
passwordField.sendKeys("Test1234");
submitButton.click();

WebElement professionalUser = driver.findElement(By.xpath("//a[@aria-describedby=\"employeeheader\"]"));
professionalUser.click();

       //Udtræk relevante elementer fra websiden, sammenlign med forventede værdier etc. ...

//Udkommenter for at lukke browseren automatisk
//driver.quit();
}
}



  • No labels