Skip to content

Web UI testing toolbox for Orchard Core applications with Selenium. It discovers so many issues that you'll get impostor syndrome.

License

Notifications You must be signed in to change notification settings

Lombiq/UI-Testing-Toolbox

Lombiq UI Testing Toolbox for Orchard Core

Lombiq.Tests.UI NuGet Lombiq.Tests.UI.AppExtensions NuGet Lombiq.Tests.UI.Shortcuts NuGet Latest version of 'Lombiq.Tests.UI' @ Cloudsmith

About

Web UI testing toolbox mostly for Orchard Core applications. Everything you need to do UI testing with Selenium for an Orchard app is here.

Highlights:

  • Builds on proven libraries like Selenium, Atata, and xUnit. See all the tools we use here.
  • Execute fully self-contained, repeatable, parallelizable automated UI tests on Orchard Core apps, running locally or remotely.
  • Do cross-browser testing with all current browsers, both in normal and headless modes.
  • Check the HTML structure and behavior of the app, check for errors in the Orchard logs and browser logs. Start troubleshooting from the detailed full application dumps and test logs if a test fails.
  • Start tests with a setup using recipes, start with an existing Orchard Core app or take snapshots in between tests and resume from there. Use SQLite or SQL Server database snapshots (but you can also use PostgreSQL or MySQL too without snapshots, see this proof of concept).
  • Use local file storage or Azure Blob Storage for Media.
  • Test e-mail sending with a local SMTP server too. Everything just works.
  • Built-in tests to check that basic Orchard Core features work, like login, registration, and content management. Demo video here. And a demo video about a proof of concept to add UI testing to Orchard.
  • Built-in monkey testing functionality to try to break your app with random user interactions. Demo video here.
  • Check for web content accessibility so people with disabilities can use your app properly too. You can also create accessibility reports for all pages.
  • Check for the validity of the HTML markup either explicitly or automatically on all page changes.
  • Reliability is built in, so you won't get false negatives.
  • Use shortcuts for common Orchard Core operations like logging in or enabling features instead of going through the UI so you only test what you want, and it's also faster.
  • Ready to use GitHub Actions workflows for CI builds and support for test grouping and error annotations in Lombiq GitHub Actions. This feature is automatically enabled if a GitHub environment is detected.
  • Support for TeamCity test metadata reporting so you can see the important details and metrics of a test at a glance in a TeamCity CI/CD server.
  • Visual verification testing: You can make the test fail if the look of the app changes. Demo video here.
  • If your app uses a camera, a fake video capture source in Chrome is supported. Here's a demo video of the feature, and check out the docs here.
  • Interactive mode for debugging the app while the test is paused. Here's a demo of the feature, and a demo video here.
  • Security scanning with Zed Attack Proxy (ZAP), the world's most widely used web app security scanner, right from UI tests. See a demo video here.

See a demo video of the project here, and the Orchard Harvest 2023 conference talk about automated QA in Orchard Core here. We also had an Orchard Harvest 2024 talk about security scanning here. Also, see our Testing Toolbox for similar features for lower-level tests.

Looking not just for dynamic testing but also static code analysis? Check out our .NET Analyzers project.

We at Lombiq also used this module for the following projects:

Do you want to quickly try out this project and see it in action? Check it out in our Open-Source Orchard Core Extensions full Orchard Core solution and also see our other useful Orchard Core-related open-source projects!

Documentation

Contributing and support

Bug reports, feature requests, comments, questions, code contributions and love letters are warmly welcome. You can send them to us via GitHub issues and pull requests. Please adhere to our open-source guidelines while doing so.

This project is developed by Lombiq Technologies. Commercial-grade support is available through Lombiq.