Scrum Masters

Plans for Boa Constrictor 3

Boa Constrictor is the.NET Movie script Pattern. It assists you make much better interactions for much better test automation!

I initially produced Boa Constrictor beginning in 2018 as the foundation of PrecisionLender’s end-to-end test automation job. In October 2020, my group and I launched it as an open source job hosted on GitHub. Ever since, the Boa Constrictor NuGet bundle has actually been downloaded over 44K times, and my group and I have actually shared the job through several conference talks and webinars. It’s remarkable to see the job truly remove!

Sadly, Boa Constrictor has actually had really little advancement over the previous year. The most recent release was variation 2.0.0 in November 2021. What occurred? Well, initially, I left Q2 (the business that obtained PrecisionLender) to sign up with Applitools, so I personally was not dealing with Boa Constrictor as part of my day task. Second, Boa Constrictor didn’t require much advancement. The core Movie script Pattern was reputable, and the interactions for Selenium WebDriver and RestSharp were battle-hardened. Although we made no brand-new releases for a year, the job lived and well. The group at Q2 still utilizes Boa Constrictor as part of countless test versions daily!

The time has actually now come for brand-new advancement. Today, I’m delighted to reveal our prepare for the next stage of Boa Constrictor! In this post, I’ll share the vision that the core factors and I have for the job– tentatively casting it as “variation 3.” We will likewise share a rough timeline for advancement.

Different interaction bundles

Presently, the Boa.Constrictor NuGet bundle has 3 primary parts:

  1. The Movie script Pattern’s core user interfaces and classes
  2. Interactions for Selenium WebDriver
  3. Interactions for RestSharp

This structure is hassle-free for a test automation job that utilizes Selenium and RestSharp, however it requires tasks that do not utilize them to handle their reliances. What if a job utilizes Playwright rather of Selenium, or RestAssured.NET rather of RestSharp? What if a job wishes to alter sort of interactions, like mobile interactions with Appium?

At its heart, the Movie script Pattern is a generic pattern for any sort of interactions. In theory, the core pattern ought to not prefer any specific tool or bundle. Anybody must have the ability to execute interaction libraries utilizing the core pattern.

With that in mind, we mean to divide the existing Boa.Constrictor bundle into 3 different bundles, one for each of the existing parts. That method, a job can state reliances just on the parts of Boa Constrictor that it requires. It likewise allows us (and others) to establish brand-new bundles for various sort of interactions.

Playwright assistance

Among the brand-new interaction bundles we mean to develop is a library for Playwright interactions. Playwright is a great brand-new web screening structure from Microsoft. It offers a number of benefits over Selenium WebDriver, such as faster execution, automated waiting, and trace logging.

We wish to provide individuals the capability to pick in between Selenium WebDriver or Playwright for their web UI interactions. Given that a test automation job would utilize just one, and considering that there might be overlap in the names and kinds of interactions, separating interaction bundles as detailed in the previous area will be a requirement for establishing Playwright assistance.

We might likewise attempt to establish an adapter for Playwright interactions that utilizes the exact same user interfaces as Selenium interactions so that folks might change from Selenium to Playwright without rewording their interactions.

Applitools assistance

Another brand-new interaction bundle we mean to develop is a library for Applitools interactions. Applitools is the premier visual screening platform. Visual screening captures UI bugs that are hard to capture with standard assertions, such as missing out on components, damaged styling, and overlapping text. A Boa Constrictor bundle for Applitools interactions would make it much easier to catch visual photos together with Selenium WebDriver interactions. It would likewise be an “optional” function considering that it would be its own bundle.

Shadow DOM assistance

Shadow DOM is a strategy for encapsulating parts of a websites. It makes it possible for a surprise DOM tree to be connected to an aspect in the “routine” DOM tree so that various parts in between the 2 DOMs do not clash. Shadow DOM use has actually ended up being rather common in web apps nowadays.

We mean to include assistance for Selenium interactions to pierce the shadow DOM. Selenium WebDriver needs additional calls to pierce the shadow DOM. Sadly, Boa Constrictor’s Selenium interactions presently do not support shadow DOM interactivity. More than likely, we will include brand-new contractor approaches for Selenium-based Jobs and Concerns that take in a locator for the shadow root component and after that upgrade the action approaches to manage the shadow DOM if needed.

INTERNET 7 targets

The primary Boa Constrictor job, the system evaluates job, and the example job all target.NET 5. Sadly, INTERNET 5 is no longer supported by Microsoft. The most recent release is.NET 7.

We mean to add.NET 7 targets. We will make the library bundles target.NET 7,. INTERNET 5 (for in reverse compatibility), and.NET Requirement 2.0 (once again, for in reverse compatibility). We will alter the system test and example tasks to target.NET 7 specifically. In reality, we have actually currently made this modification in variation 2.0.2!

Dependence updates

A Lot Of Boa Constrictor’s reliances have actually launched brand-new variations over the previous year. GitHub’s Dependabot has actually likewise flagged some security vulnerabilities. It’s time to upgrade reliance variations. This is basic regular upkeep for any job. Currently, we have actually upgraded our Selenium WebDriver reliances to variation 4.6.

Documents improvements

Boa Constrictor has a doc website hosted utilizing GitHub Pages. As we make the modifications explained above, we should likewise upgrade the paperwork for the job. Most significantly, we will require to upgrade our tutorial and example job, considering that the bundles will be various, and we will have assistance for more sort of interactions.

What’s the timeline?

The core factors and I prepare to execute these improvements within the next 3 months:

  • Today, we simply launched 2 brand-new variations with incremental modifications: 2.0.1 and 2.0.2.
  • Today, we intend to divide the existing bundle into 3, which we mean to launch as variation 3.0.
  • In December, we will revitalize the GitHub Issues for the job.
  • In January, the core factors and I will host an in-person hackathon (a “Constrictathon”) in Cary, NC.

There is lots of work ahead, and we ‘d like for you to join us. Have a look at the GitHub repository, read our contributing guide, and join our Discord server!

Source link