GTP Execution Engine
Runtime: NodeJS
Description: Takes test script as input and executes on playwright.
Executes npx testTest results recieved via Playwright Custom Reporter
PROS
similar to lambdatest results
includes
has whole test object
test step and results
provides data on_step_begin(), on_step_end()
CONS
doesn’t have DOM
doesn’t have browser console
doesn’t have access to dynamic variables for data driven tests
GTP Front End Application
Script Detail Component
Script Service Component
GTP Springboot Application
Sample pseudo code
Code Block | ||||
---|---|---|---|---|
| ||||
gtp-crome-extension //gtp-script-execution.js
mainbrowser = playwright.webdriver.attach (tab1,....)
for step in steps
variables = datasetcsv[i+1]
if step == click
// pre_processing before each step
initialize_data()
//run step
playwright.gtp_click() // <-- playwright generated script
//post processing
record_step_results(step, dom, console, network)
if step == assert_text
// pre_processing before each step
initialize_data()
//run step
eval('mainbrowser.playwrightpage.field(id).gtp_fill("username")')
// THIS DOESNT WORK IT IS SECURITY VIOLATION TO DYNAMICALLY RUN ANY COMMAND WITH THE PAGE
await page.goto('https://demo.playwright.dev/todomvc/#/');
await page.getByPlaceholder().click();
// DYNAMICALLY CALL THE STEP
await page.'step.locator.method()'(step.parms['locatorid']).fill(step.parms['filltext']);
// PROBLEM: METHODS ARE DYNAMIC NOT ONLY THE PARAMETERS
//post processing
record_step_results(step, dom, console, network)
// in first version we don't support all steps
if step == drag_and_drop
not_supported()
if step == mfa
initialize_data()
custom_feature()
record_step_results(step, dom, console, network)
|