Book Image

Enhanced Test Automation with WebdriverIO

By : Paul M. Grossman, Larry C. Goddard
Book Image

Enhanced Test Automation with WebdriverIO

By: Paul M. Grossman, Larry C. Goddard

Overview of this book

This book helps you embark on a comprehensive journey to master the art of WebdriverIO automation, from installation through to advanced framework development. You’ll start by following step-by-step instructions on installing WebdriverIO, configuring Node packages, and creating a simple test. Here you’ll gain an understanding of the mechanics while also learning to add reporting and screen captures to your test results to enhance your test case documentation. In the next set of chapters, you’ll delve into the intricacies of configuring and developing robust method wrappers, a crucial skill for supporting multiple test suites. The book goes beyond the basics, exploring testing techniques tailored for Jenkins as well as LambdaTest cloud environments. As you progress, you’ll gain a deep understanding of both TypeScript and JavaScript languages and acquire versatile coding skills. By the end of this book, you’ll have developed the expertise to construct a sophisticated test automation framework capable of executing an entire suite of tests using WebdriverIO in either TypeScript or JavaScript, as well as excel in your test automation endeavors and deliver reliable, efficient testing solutions.
Table of Contents (20 chapters)
16
Epilogue
Appendix: The Ultimate Guide to TypeScript Error Messages, Causes, and Solutions

Schrödinger and the quantum mechanics of test automation

This issue is similar to what is known as the measurement problem in quantum mechanics. Putting it simply, measuring the outcome of an event at the quantum level can change the outcome of the event. Imagine testing the temperature of cold water with a warm thermometer. Over time, the measuring equipment warms the cold water slightly and the equipment itself cools from the cold water. Thus, readings over time become inconclusive.

In this case, sending details to the console window puts a little more overhead on the system. The speed of execution of the statements changes slightly, and so does the completion order, giving different results each time. This has a lot to do with the prioritization of statement execution in the JavaScript event Loop, as shown next:

Figure 4.1 – A visualization of the execution order of promises and callbacks in the JavaScript Event loop

Figure 4.1 – A visualization of the execution order of promises and callbacks in the JavaScript Event loop

JavaScript has an...