-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add support for grouping requests in scenarios for which order is not important #23
Comments
Also, this can be achieved by using sub-scenarios. For example, we could allow something like this: new Scenario.Builder()
.sequentialScenario()
.on('endpoint1')
.respondWith(...)
.then()
.awaitSubScenarios(
new Scenario.Builder()
.infiniteLoop()
.on('endpoint2')
.respondWith(...)
.build(),
new Scenario.Builder()
.sequentialScenario()
.on('endpoint3')
.respondWith(...)
.then()
.on('endpoint4')
.respondWith(...)
.build()
)
.then()
.on('endpoint5')
.respondWith(...)
.build(); This would create a scenario which awaits a call on |
cacheQueue serves from the list of caches the first hit, making the order less specific but still maintains an order by returning (and removing) the first match from the queue |
Lekker bezig weer! Ik voel me nou toch wel beetje schuldig dat ik nog niet echt iets heb bijgedragen sinds maart. Wat JP zei over ‘ik heb nog nooit zoveel geprogrammeerd’ komt bij mij neer op: ik ben nog nooit zo vaak op m’n laptop in slaap gevallen :P Maar ondertussen heb ik wel de nieuwe scenario-engine uitgewerkt. Nu moet ik hem alleen nog even intypen. —JH
|
Haha ja kan me voorstellen dat het zijn tol vraagt. Mijn zusje heeft ook een kotertje sinds een week of 4 nu, die leven ook wat ‘anders’ op het moment ;) De CacheQueue plugin is misschien nuttig om even naar te kijken. Dat is een repository die je kan voeden met een array van caches, array volgorde is dan more or less de volgorde waarin ze terug geserveerd worden. Verschil met de scenario repository is dat de cacheQueue de first requestKey hit terug geeft, en wel de mogelijkheid biedt om meerdere responses voor eenzelfde requestKey te leveren. Omdat het een array is en niet een object met requestKey: cacheEntry heb je geen issues met overwrites van de cacheEntry door dubbele keys. Op deze manier kunnen we bij MyA alle endpoints recorden, CMS inclusief, en de volgorde waarin requests binnen komen maakt dan niet zoveel uit, zolang je niet per ongeluk een hele andere richting inslaat in je E2E. Over het algemeen houdt het in dat je een cacheQueue vult met zo’n 20 caches, en de volgorde is dan iets ala: Recording werkt door gewoon record op true te zetten (de settings voor considerRecording was ik nog mee bezig), en als je dan klaar bent met recorden moet je zelf de http-api GET url openen in de browser om de array te zien. Die kan je dan gewoon copy/pasten naar een file, dus geen sjieke GUI voor nog, en geen write to file. Haalt wel een hoop hassle weg. Daarnaast heb ik een cacheConglomerate plugin neergezet, die een soort vergelijkbaar is met de normale memory-repository. Ik weet ff niet meer waarom ik hem gemaakt had, er was toen een bepaalde use-case voor volgens mij die niet direct kon met de memory-repository. Ben je wel alweer aan het werk bij de Rabo? Alles flap daar? Grts! -- On 21 May 2015 at 07:50:38, Jan-Hendrik Kuperus ([email protected]) wrote: Lekker bezig weer! Ik voel me nou toch wel beetje schuldig dat ik nog niet echt iets heb bijgedragen sinds maart. Wat JP zei over ‘ik heb nog nooit zoveel geprogrammeerd’ komt bij mij neer op: ik ben nog nooit zo vaak op m’n laptop in slaap gevallen :P Maar ondertussen heb ik wel de nieuwe scenario-engine uitgewerkt. Nu moet ik hem alleen nog even intypen. —JH
— |
Ik zal eerst de develop branch eens gaan bestuderen :) Ondertussen zijn hier ook al meer geluiden om over te stappen op een ander stub-ding. Er zijn diversen die al zoiets hebben van ‘dat nodejs tooltje van jou, is dat een beetje makkelijk te gebruiken?’ :) Ik ben uiteindelijk maar 1 dag weggeweest bij de Rabo. Wel die eerste week wat kortere dagen gemaakt, maar niet helemaal vrij genomen. (Blijf ZZP’er natuurlijk) Laten we het zo zeggen: het team en de reisafstand maken een hoop goed ;) Zal ik ff een datumprikker maken voor onze date? —JH
|
The current use case we're providing with scenarios only supports linear scenarios. If the app we're testing were to request resources asynchronously, the order of a scenario might no longer match that of the actual requests. This calls for supporting a scenario type asynchronousScenario()
The text was updated successfully, but these errors were encountered: