Spike - Playwright implementation Plan
Approach
We want to seperate development activities from customer discovery and customer delivery. Customer Delivery we are delivering robust, high-quality code that is consistent, and reliable.
There are times when we have an objective where there is risks related to value - will customer pay for feature? usable - will customer be able to use the product, feasible - will the solution technically work? viable - will the feature(s) be viable for the business. In this case, we want to operate in a customer discovery mode where we are very rapidly validating and investigating something. Discovery prototypes are an order of magnitude smaller than Delivery work, and are designed to uncover the risk. The learnings and/or code from discovery can be leveraged when integrating into the commercial product.
Feasibility Prototypes
playwright inspector has better information for a particular element what are the best selectors.
(i.e. for buttons → xpath, for anchor text → text )playwright calculation for css selector query is better than GTP recorder?
→ investigate if we can steal css selector query code from playwright codebase
playwright code generator - contains recorder, selects elements and generates the test scripts.
investigate if we can use and trigger the playwright code generator
only useful if we end up using the generated code to the user
NOT USEFUL FOR NO CODE FEATURES
USEFUL FOR CODE GEN / AI GEN / IMPORT CODE
Business model test - ???
Ask customers if they prefer low code over ai generated code
Technology test - ???
playwright test results - exposes APIs for show test results of the session. It has a UI to show test results during execution.
playwright UI mode - has a dashboard, pick dashboards, see variables, see logs etc.
investigate to see if we use playwright UI mode as a debugger window feature.
Scheduler | CI/CD invocation
Investigate how to use playwright to be triggered by CI/CD from our environment. Are all the parameters the same? are there new ones? how can you run scripts in parallel?Desktop Application Executor
Trial to see if we can wrap our execution service and run it locally on tester’s PC.OnPrem Configuration
Investigate how to trigger scripts and dependency when everything is on a local server.Code Overhaul
mitigation: investigate playwright wrapper
Implementation approaches
Have Playwright and Selenium available in parallel
add a new set of services in backend to execute selenium
Have a Playwright Adapter that meets Selenium functional spec
Create independent application which communicates via websocket
Seperate springboot project or angular or react project
rebuild the record, executor part
connect to playwright report data and create our own view
Current Architecture
Target Architecture
Target architecture has playwright as a salmon-colored box of magic. We need to complete the feasibility prototypes above to have a detailed architecture.