Microsoft recently released the BETA version of their Dynamics 365 Customer Engagement automated UI testing API built on top of Selenium EasyRepro. The API makes automated UI testing for Dynamics 365 Customer Engagement and Dynamics CRM 2016 (much) easier and it works like a charm!
I personally had a few attempts at implementing such a layer since Dynamics CRM 2011 with various levels of success. However, since I heard a rumour that Microsoft was to release its automated UI testing code base, I parked the projects and advised clients and employers to minimise the amount of investment they spend on implementing such a layer.
I put the API to test and I must say, it performed like a beauty. All I had to do was clone the GIT repository, update the app.config, build and run. When I built the solution, NuGet did its magic and resolved a couple of dependencies including the Selenium WebDriver and the Selenium Chrome WebDriver.
I chose to run the CreateAccount unit test with a few minor changes to the code. The result was great.
Automated UI unit testing is a skill that you acquire with experience. It’s a steep learning curve and it starts slow. The slowness is attributed to the nature of the tests. Each UI test might require to login and navigate to required form which may take a while (minutes) which then renders restarts and retries slow. Until you have a set of reusable snippets and some scars (for example a screen resolution change may fail your test), be patient. You will most certainly get there at the end.
Without going too much into the unit testing marketing material (investment VS return on investment), this API opens a new horizon of regression testing for Dynamics 365 which again fits perfectly with my DevOps story from chapter 8 of my Dynamics 365 Extensions book. Regression testing can be used for configuration/customisation continuous testing, minor/major product upgrades smoke testing, and much more.
Until the next time, hello regression testing!