← Alle berichten
10 mrt 2026Matias Aguirre

@matware/e2e-runner 1.3.0: Learning Feedback Loop, Multi-Pool & 8 Nieuwe Action Types

Onze meest ambitieuze release tot nu toe. Een lerend systeem dat terugkoppelt naar testcreatie, intelligente routing over meerdere Chrome pools, declaratieve GraphQL, en een complete Claude Code plugin.

e2e-runnertestingmcpclaude-codemachine-learningopen-source
E2E Runner 1.3.0 met learning feedback loop en multi-pool routing
E2E Runner 1.3.0 met learning feedback loop en multi-pool routing

Versie 1.3.0 van @matware/e2e-runner vertegenwoordigt de grootste sprong sinds de eerste lancering. Met 20 commits, meer dan 17.000 regels code toegevoegd, en een fundamenteel herontwerp van hoe het systeem leert van zijn eigen uitvoeringen, transformeert deze release e2e-runner van een test runner naar een intelligente testing assistent.

Multi-Pool & Gedistribueerde Infrastructuur

Het eerste grote verbeteringsgebied richt zich op enterprise scenario’s waar een enkele Chrome pool niet voldoende is.

Least-Pressure Routing

Je kunt nu meerdere Chrome endpoints configureren (browserless/chrome, chrome-headless-shell, of elk CDP-compatibel systeem) en het systeem routeert automatisch elke test naar de pool met de laagste belasting:

{
  "pools": [
    { "url": "ws://chrome-1:3000", "maxConcurrency": 10 },
    { "url": "ws://chrome-2:3000", "maxConcurrency": 10 },
    { "url": "ws://chrome-3:3000", "maxConcurrency": 5 }
  ],
  "routing": "least-pressure"
}

De balancer houdt rekening met zowel actieve verbindingen als recente responstijden, en distribueert de belasting optimaal.

Watch Mode

Voor iteratieve ontwikkeling herstart de nieuwe watch mode automatisch tests wanneer bestandswijzigingen worden gedetecteerd:

npx @matware/e2e-runner run --watch

Combineer dit met het dashboard voor directe feedback tijdens het ontwikkelen van tests.

Hub/Agent Architectuur

Voor teams die geografisch gedistribueerd testen nodig hebben, introduceren we een hub/agent architectuur. Een centrale hub coördineert meerdere remote agents, elk met hun eigen Chrome pool. Resultaten worden realtime geconsolideerd op het centrale dashboard.

8 Nieuwe Action Types

Het vocabulaire van beschikbare acties in je JSON tests is aanzienlijk gegroeid.

Declaratieve GraphQL

Het nieuwe gql action type elimineert de noodzaak om GraphQL calls te wrappen in gigantische evaluate blokken:

{
  "action": "gql",
  "endpoint": "/graphql",
  "query": "query GetUser($id: ID!) { user(id: $id) { name email } }",
  "variables": { "id": "123" },
  "assert": {
    "user.name": { "exists": true },
    "user.email": { "contains": "@" }
  }
}

Assertions worden inline geëvalueerd tegen de response, met JSON paths om geneste structuren te navigeren.

Storage Actions

Manipuleer en verifieer localStorage/sessionStorage direct:

{ "action": "set_storage", "key": "auth_token", "value": "test-token-123" },
{ "action": "assert_storage", "key": "auth_token", "exists": true }

Ideaal voor tests die authenticatiestaten of gebruikersvoorkeuren moeten simuleren.

Complexe UI Interacties

Drie nieuwe action types voor interacties die voorheen fragiele selectors vereisten:

  • click_icon: Klik op iconen via semantische naam (search, menu, close)
  • click_menu_item: Navigeer dropdown menu’s via itemtekst
  • click_in_context: Klik relatief aan een container element
{ "action": "click_icon", "icon": "settings", "near": ".user-profile" },
{ "action": "click_menu_item", "menu": ".dropdown", "item": "Uitloggen" }

Wait Network Idle

Voor SPAs met complexe asynchrone loading wacht wait_network_idle tot er geen pending requests zijn voor een configureerbare periode:

{ "action": "wait_network_idle", "timeout": 5000, "idleTime": 500 }

Learning Feedback Loop

Dit is de ster van de release, en verdient een gedetailleerde uitleg.

Tot nu toe stroomden uitvoeringsgegevens in één richting: tests uitvoeren, resultaten opslaan, weergeven in dashboard. Het systeem verzamelde kennis maar gebruikte het niet actief.

Met 1.3.0 leert het systeem en koppelt terug op twee kritieke momenten:

Bij Het Creëren van Tests

Wanneer je een nieuwe test maakt (handmatig of via MCP), raadpleegt het systeem zijn learnings database en waarschuwt je voor:

  • Selectors die historisch instabiel zijn geweest
  • Stabiele selectors met hoge succespercentages
  • Pagina’s met problematische laadtijden
  • Frequente fouten in vergelijkbare tests

Bij Het Uitvoeren van Tests

Wanneer een test faalt, rapporteert het systeem niet alleen de fout — het suggereert concrete fixes gebaseerd op waargenomen patronen:

  • Alternatieve selectors die werkten in vergelijkbare contexten
  • Extra waits voor elementen met bekende async loading
  • Retry configuraties voor intermitterende endpoints

Intelligente Validatie

Het systeem detecteert anti-patterns voordat ze problemen veroorzaken:

// Deze evaluate slaagt ALTIJD - het systeem detecteert dit
{
  "action": "evaluate",
  "script": "return `Aanvragen: ${hasRequests}`"
}

Het genereert een waarschuwing: “Deze test zal altijd slagen omdat het een truthy string retourneert ongeacht de waarde van hasRequests”.

Het detecteert ook:

  • Impliciete afhankelijkheden tussen tests
  • Waits met vaste numerieke waarden (anti-pattern vs. wait for selector)
  • Assertions die nooit kunnen falen

Complete Claude Code Plugin

De MCP plugin is volledig herontworpen met drie gespecialiseerde agents:

test-creator

Genereert tests vanuit natuurlijke taalbeschrijvingen, raadpleegt learnings om problematische selectors vanaf het begin te vermijden.

test-analyzer

Analyseert bestaande tests, identificeert kwetsbaarheden, en suggereert verbeteringen gebaseerd op uitvoeringsgeschiedenis.

test-improver

Neemt vaak falende tests en refactort ze met toepassing van de succesvolle patronen van het project.

Alle drie agents gebruiken skills met on-demand references — context wordt alleen geladen wanneer nodig, om overbelasting van het LLM context window te voorkomen.

Compatibel met Claude Code en OpenCode.

Installatie

Updaten is eenvoudig:

npm install @matware/e2e-runner@1.3.0

Voor de Claude Code plugin:

claude plugin install @anthropic/claude-code-marketplace/fastslack/e2e-runner

Als je van een eerdere versie komt, worden bestaande learnings automatisch gemigreerd naar het nieuwe schema.

Conclusie

Versie 1.3.0 vertegenwoordigt een fundamentele evolutie in hoe we denken over geautomatiseerd testen. Het gaat niet alleen om tests uitvoeren en resultaten rapporteren — het gaat om het bouwen van een systeem dat leert van elke uitvoering en die kennis gebruikt om tests robuuster, beter onderhoudbaar en makkelijker te maken.

De volledige code is beschikbaar op GitHub. Issues, PRs en feedback zijn welkom.

Delen
Volgende stap

Klaar om Uw Project te Starten?

Laten we bespreken hoe technologie uw organisatie kan transformeren. Wij bieden technische consultaties en maatwerkoplossingen afgestemd op institutionele vereisten. Plan een vrijblijvend strategisch gesprek.

Neem contact op
Gratis consultatieVrijblijvendSnelle reactie