In reference to this thread: Which automated testing tool is best to use with Bubble?
I’ve been slowly building a test suite for an app using Playwright. My take so far.
The Good
Playwright is Robust
It hasn’t (yet?) flaked out on me saying that there was some browser compatibility.
Great documentation
Clear, concise, helpful, and with lots of good examples.
AI knows Playwright
Claude 3.7 and ChatGPT 4.1 have been very good at giving me suggestions, uncovering features that I had not yet found.
Visual Test Summary
Very nice to see the results at the end and – if a test fails – it points me to the line that it fails.
Writing Tests Uses a Different Part of My Brain 
That mindspace helps me really understand what the hell is going on with the user and the Bubble app in tiny little steps. Also, it helps highlight how much time the user spends waiting for one thing or another.
The Bad Not so Good
Looooong tests
It’s best to have 1 big test with lots of different assertions inside of it because of Bubble’s heavy/slow page loads.
For instance, I’ve got a test that checks if 4 different popups show up. Ideally, I would break them into 4 different test(). But when I do that each test has to load the Bubble app, wait for elements to fully load, and then run the tests.
To avoid that long waiting, I just put all the tests in a single test() and it goes much faster, but I loose the granularity.
It is verbose…
Just to test if clicking a button shows a popup. The amount of awaits can be distracting.
// Create department popup
const createDeptButton = page.locator("button", {
hasText: /Create Department/,
});
const createDeptPopup = page.locator("div.Popup.baThaHaI");
await expect(createDeptButton).toBeVisible();
await createDeptButton.click();
await expect(createDeptPopup).toBeVisible();
await page.keyboard.press("Escape");
await expect(createDeptPopup).not.toBeVisible();
Wishlist
- is there a visual builder?
- is there a way “save” the app state so that I can restart from there?
