There's a few out there but what I haven't found is one that can handle coordinating between two browsers (for example, to test chat functionality).<p>It would be great if it was easy enough that Devs could make a test case before they submit their work. And better yet if Product could easily contribute cases as well.
Can you just simulate that coordination with sleep timers?<p>Test box A:<p>===================<p>- Start chat<p>- Wait 60 seconds<p>- Send message "Blah blah ID123"<p>- Wait 60 seconds for DOM element "Acknowledging receipt of ID123" or fail<p>Test box B:<p>===================<p>- Start chat<p>- Wait 10 minutes for DOM element containing "ID123"<p>- Send message "Acknowledging receipt of ID123"<p>As for setting up the tests, I found Datadog's GUI to be pretty easy to use: <a href="https://docs.datadoghq.com/synthetics/browser_tests/?tab=requestoptions" rel="nofollow noreferrer">https://docs.datadoghq.com/synthetics/browser_tests/?tab=req...</a> (it's like a homebrewed DOM selector and logic engine GUI, no coding required, but CSS and Xpath selectors are helpful).
I wrote a test automation component for executing a distributed peer-to-peer application in the browser. You could adapt it to fit your needs.<p>All aspects of the tests are defined as a TypeScript interface so the code editor literally tells you how to complete a test object with the required properties and what the choice of values are.<p>Here is an old video about it from Feb 2021. It’s much faster and improved now.<p><a href="https://prettydiff.com/share-test-automation.mp4" rel="nofollow noreferrer">https://prettydiff.com/share-test-automation.mp4</a>
It sounds crazy but combining two (e.g. cypress and selenium) can work fine especially with changed $browser config. So when I had this issue, I just did that for now, it's never needed more than 2 and been the simplest solution.<p>Cypress I think doesn't allow multi-tabs etc (or at least at the release version in 2020 when I switched to it, didn't, and I still mentally model it that way), so I go back to selenium for this kind of thing. It's not ideal to use selenium these days, but it works ok.
Until a few years ago there was nothing ready out of the box and we had to build a solution ourselves. All the building blocks are available but you'll need to integrate them yourself.