Over the past five years, I've constructed many automation test frameworks, both tinkering here at home and creating ones on-the-job.
For this next series of blog entries, I will be exploring Webdriver IO Version 6, which uses JavaScript, Node Js, and the Node Package Manager (NPM). The only problem? I last used this particular toolset back when I was working on a Nightwatch JS project four years ago. So, here it goes!
The WebdriverIO robot |
Related Links:
- Official Site: https://webdriver.io/
- Github site: https://github.com/webdriverio/
- TestAutomation University course, UI Automation with WebdriverIO by Julia Pottinger
- YouTube: Learn WebDriverIO by Kevin Lamping
First up: Installing WebdriverIO!
Taken from Selenium and WebdriverIO — A Historical Overview by Germain Boue.
"WebdriverIO is an independent implementation of the JSON Wire Protocol by Christian Bromann. It is a test framework for Node.js. It wraps its lower level requests into useful commands, with a concise syntax [...]
- "WebdriverIO is fully built using Javascript. This means that if you are comfortable with JS you can immediately start writing automation using their documentation. It also means, that it is front end friendly by nature. Your team members do not need to learn a new language and it can easily be adopted
- "It’s syntax is simple. You essentially grab an element via selectors and call a method on it. It is compatible with most assertion libraries and testing framework such as mocha or jasmine
- "The Page Object pattern is a convention that is easily put in place with webdriverIO (https://webdriver.io/docs/pageobjects.html) By placing all the getters and functions in a Page Object, you can import within spec and keep your code readable. This means your specs serve as documentation for non-technical individuals. As well, if a it block fails, by using best coding practices your web devs can debug faster
- "It also comes with a test runner and the configuration utility helps you create a config file in a matter of seconds. It contains plenty of comments, and you can start customizing your project within a matter of minutes".
How To Install WebdriverIO
Getting Started: https://webdriver.io/docs/gettingstarted.html
For this project, I will be installing on my Windows 10 machine at home. For the Mac and Linux machines, the instructions are slightly different.
Taking the First Step: According to the instructions on the Getting Started page on Webdriver.io, you will need to:
- Download and Install Node JS: https://nodejs.org/ ... the site will detect if you are using a Windows or Mac.
- Using a Windows machine? Make sure to add C:\Program Files\nodejs\ (or wherever you installed Node JS) to the Path of your environment variables so you can execute NPM commands on your MS Command Prompt.
- Installing NPM on Windows, you can also follow instructions on https://github.com/nodejs/node-gyp#on-windows to install Microsoft's Windows Build Tools which also installs Python 2.7.
- Did NPM install? Check the version of NPM you have: npm -v
Set Up Your Project: According to the Getting Started page:
- Initialize a new NPM (Node Package Manager) project: Create a new directory and type: npm init -y
- Install the WebdriverIO Command Line Interface (CLI) Tool in order to install their TestRunner in the WDIO CLI npm package which will also install the Jake JavaScript build tool https://jakejs.com/: npm i --save-dev @wdio/cli
- Generate a Configuration File to store settings in wdio.conf.js: npx wdio config -y
=========================
WDIO Configuration Helper
=========================
Installing wdio packages:
- @wdio/local-runner
- @wdio/mocha-framework
- @wdio/spec-reporter
- wdio-chromedriver-service
- @wdio/sync
- chromedriver
Configuration file was created successfully!
To run your tests, execute:
$ npx wdio run wdio.conf.js
How To Create Tests
- For Windows, create a test folder: mkdir .\test\specs
- Change into the test directory just created: cd .\test\specs
- On Windows, you can use Notepad to create a new text file called basic.js: notepad basic.js
- Copy and paste the following test file into basic.js and save the file.
describe('webdriver.io page', () => {
it('should have the right title', () => {
browser.url('https://webdriver.io')
expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');
})
})
Running The Tests
- To run the tests, go back to the main directory you created and run: npx wdio wdio.conf.js
... And after all of that we have errors.
@wdio/runner: Error: Cannot find module '..pageobjects/login.page'
"spec" Reporter:
------------------------------------------------------------------
[chrome 84.0.4147.105 windows #0-0] Spec: C:\Users\tmaher\webdriverio-test\test\specs\basic.js
[chrome 84.0.4147.105 windows #0-0] Running: chrome (v84.0.4147.105) on windows
[chrome 84.0.4147.105 windows #0-0] Session ID: 5cdc4739eb005508359487d0cc92863a
[chrome 84.0.4147.105 windows #0-0]
[chrome 84.0.4147.105 windows #0-0] webdriver.io page
[chrome 84.0.4147.105 windows #0-0] ✓ should have the right title
[chrome 84.0.4147.105 windows #0-0]
[chrome 84.0.4147.105 windows #0-0] 1 passing (2.8s)
Spec Files: 1 passed, 1 failed, 2 total (100% completed) in 00:00:12
Digging into the project, it looks like the above test ran perfectly.
- A browser opened up.
- The browser navigated to http://webdriver.io
- The expectation to have the title "WebdriverIO · Next-gen browser and mobile automation test framework for Node.js" was met.
The problem is that yet another sample project was also installed... one performing a few tests on my favorite test sites, Dave Haeffner's Login page on The Internet: https://the-internet.herokuapp.com/login .
Diving into the code, I am wondering if someone designed their tests for The Internet on a Mac, and since I am running them on Windows 10, they didn't check if the code could be run on both a Mac and PC, detecting the proper folder structure.
What's Next?
Coming up in the next couple of weeks we will:
- Examine the code in the basic.js test.
- Review the code in the example.e2e test.
-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston
Twitter | YouTube | LinkedIn | Articles
49 comments:
What an extremely wonderful post this is. Genuinely, perhaps the best post I've at any point seen to find in as long as I can remember. Goodness, simply keep it up.
artificial intelligence course in delhi
What an extremely wonderful post this is. Genuinely, perhaps the best post I've at any point seen to find in as long as I can remember. Goodness, simply keep it up.
artificial intelligence course in delhi
Hello,
You can try using https://www.robodog.in
It is completely free now and is very easy to test any site with just s few steps.
No coding is required, just need to know how to get xpath.
Thanks.
incredible article!! sharing these kind of articles is the decent one and I trust you will share an article on information science.By giving an organization like 360DigiTMG.it is one the best foundation for doing guaranteed courses
AI Courses
Here at this site actually the particular material assortment with the goal that everyone can appreciate a great deal.
big data course malaysia
Nice Post,This is very nice information, Thank you for sharing.
software testing course in chennai
It's really amazing to have many lists of will help to make thanks a lot for sharing
đặt vé máy bay đi trung quốc
vé máy bay đi thượng hải giá rẻ
đặt vé máy bay đi quảng châu trung quốc
vé máy bay đi đài loan giá bao nhiêu
vé máy bay tphcm đi taipei
really true info u have shared with your audience and I am really loving it dear.
top exercise for home
top treadmill to have in home
Thank you for the update it was a sobering report.
https://360digitmg.com/hrdf-training
Thanks for sharing this
Amazing Article, Thankyou so much
I’m really impressed with your writing skills as well as with the layout on your blog.
Is this a paid theme or did you customize it yourself?
Anyway keep up the excellent quality writing, it’s
rare to see a great blog like this one nowadays.
best gaming chair in India
best gaming chair Under 5000
best gaming chair Under 10000
best gaming chair Under 15000
Superb blog post! And this blog clearly explain about for useful information. I would Thanks for sharing this wonderful content. Its very useful to us. Keep it up!
core php interview questions
advanced php interview questions
php developer interview questions
php technical interview questions
php interview questions and answers for experienced
Wonderful Blog, thanks for sharing this blog with us, waiting for your next update.
Big Data Training in Chennai
Big Data Training Online
Why Data Science is Important?
I didn’t have any expectations concerning that title, but the more I was astonished. The author did a great job. I spent a few minutes reading and checking the facts. Everything is very clear and understandable. I like posts that fill in your knowledge gaps. This one is of the sort.
Thanks for sharing the information..
DevOps Training
Nice Article. Very informative.
Training for devops
sharing information is very important in todays era and there are only few websites sharing good info like this one.
kitchen chimney india
top dishwasher india
Nice blog, it is very impressive.
Protocol Testing Course Online
Protocol Testing course in Bangalore
Nice blog, it is very impressive.
Protocol Testing Course Online
Protocol Testing course in Bangalore
Useful blog, keep sharing with us.
Devops Training Institute in KPHB
This is usefuk blog. So convenient that you can have a good time without leaving home. Come to the casinoschileonline and rest from all worries
very useful.. portfolio photographers in india
Great blog
Are you feeling overwhelmed by the sheer complexity of your programming assignments? You need not worry anymore, as GreeceAssignmentHelp.com is here to provide you with expert programming assignment help in Greece. Our team of seasoned programmers can deliver exceptional quality work that meets your requirements and ensures academic success.
"At ClassyArtz.com, we specialize in varmala preservation resin with our expert techniques. Our skilled artisans carefully seal your varmala in a durable and transparent resin, creating a mesmerizing display that encapsulates the joy and romance of your wedding day."
Elevate the significance of your Varmala by preserving it in resin. Our expert in Varmala Preservation Service encapsulates the garland in high-quality resin, protecting its color and form for years to come. This thoughtful gesture allows you to revisit the memories of your special day and cherish the moments that brought you together.
Exploring WebdriverIO's journey with insightful guides is a fantastic way to grasp automation. Your step-by-step installation guide simplifies the process for both beginners and experienced users. Great job! Conversión Divorcio Nueva York Estado
"Experience the beauty of Resin Arts Jaipur with our handcrafted collection by Kavita Dadheech. Our resin art store near you offers a wide range of unique and elegant Handmade Resin Items, perfect for enhancing any space. Visit us for exclusive resin art products in Jaipur."
Thanks for sharing. It is such a very amazing post. Great job you made in this post
The website style is perfect; the articles are great. and you are great Thanks
Fantastic blog, This really is an incredibly amazing resource. Many thanks
I am happy to find this way of writing the post. Thank you for this useful info
I enjoy this kinds of own post. It Like this knowledgeable blog here.
I love the efforts you have put in this, thanks for all the great blog posts.
I suppose its good enough to use some of your ideas!!
Your style is so unique compared to many other people.
Pretty cool post. It’s really very nice and useful post. Keep it up!
It is the little changes that make the greatest changes.
Easily, the article is actually the best topic on this issue. Great job.
I definitely loved every little bit of it.
I believe that you could do with some % to pressure the message house.
Thanks For sharing such valuable information.
Hi there, I enjoy reading all of your article.
Thanks and Best of luck to your next Blog in future.
It contains wonderful and helpful posts. Keep up the good work!.
Thanks for sharing this awesome content, it would be helpful
GOOD AFTERNOON! I WISH, YOU ALWAYS POST MORE BLOG LIKE THIS!! THANK YOU
NICE POST!
THANK YOU FOR SHARING.....
Post a Comment