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:
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).
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();
}
}