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
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)