You asked you got it !! JK 😂 , this was in my backlog for a long time and finally had time to write something about it. This literally summarises my life:
Not many people out there talking about Blockchain Tests, maybe Oleksandr Romanov and Rhian Lewis, so I usually resource to communities (Web3Tests, Synpress…) to see what others are doing.
It is a bit shocking as there are many well-known attacks in this technology and on top of that after deploying something to the Blockchain you can’t go back (immutability feature), so how come this phase is so neglected as making sure everything is alright is so crucial ?
I am doing a quick benchmark about the End-to-End Tests Web3 Frameworks that are out there, and yes you can always mock the Web3 and then you don’t rely on third party integrations, which you would do any Web2 application already. But hey, this is one option to use when you need it !
Here it is what I got from the two major and most popular tools to test Web3 Apps (DApps):
Criteria | Synpress | Dappeteer |
---|---|---|
Platform & Application Support | Web3 applications (Dapps) | Web3 applications (Dapps) |
Supported Technologies | TypeScript, Javascript | TypeScript, Javascript |
Wallets supported | MetaMask | MetaMask snaps, but probably is outdated. |
Testing Scope | E2E Tests | E2E Tests |
Testing Framework Integration | Playwright (as a plugin) Support for Cypress is coming soon. | Playwright (as a plugin) Puppeteer (as a plugin) |
Ease of Use & Learning Curve | Easy learning curve, requires JavaScript/Typecript knowledge | Requires JavaScript/Typescript knowledge |
Reporting & Analytics | Detailed reports with dashboards and integrations | Basic reporting, may require additional tools |
Ease of setup | Easy to set up with Node.js, yarn and npm | Easy to set up with Node.js, yarn and npm |
Browsers | – Chrome/Chromium (+ Edge, Opera, Brave, Chromium-based browsers) – Firefox – Webkit (Safari) | – Chrome/Chromium (+ Edge, Opera, Brave, Chromium-based browsers) – Webkit (Safari) |
Community & Support | Large and active community, extensive documentation and support | Smaller community, growing resources and documentation |
Cost & Licensing | Open source and free to use | Open source and free to use |
Scalability & Integration | Highly scalable, integrates with CI/CD pipelines | Less information available, may require custom integrations |
Accessibility | Supports accessibility testing with plugins | Information not available. |
Customization | Highly customizable with plugins and extensions | Highly customizable with plugins and extensions |
Let me know in the comments which option you went for and how was your experience with it 😃