AnyMind Group
Published in

AnyMind Group

[Tech Blog] How to automate using UIlicious

Hi! I am Alyssa Andrea, QA Engineer of the engineering department at Anymind Group.

I’ve been a manual functional tester for 5 years. Unparalleled in my abilities to find those crazy bugs and the only happy (not sure about devs) on the team to find them. I like doing regression testing of a whole project although I run into problems doing the same job every time. So, I’ve looked for a tool that will help reduce the repetition of the work. It’s called UIlicious.

Oh cool Automation!

The questions are: Do I know how to code? No. But this tool doesn’t need you to know the complexity of programming languages which most QAs are afraid of “ coding “.

Would you repetitively click multiple times and fill in different fields when creating new users when doing regression testing or make a script and click once and do something else?

I think this is where automation would help us. Let me show the basics:

To begin with, UIlicious runs from Javascript underneath. Let me guide you through a simple login functionality using UIlicious:

A sample cool project called AnyFactory

A sample script where the user can login:

// Given that user is in the login page I.goTo("https://crazydeveloplinkhere.com/"); I.fill("Email", "myprivateworkemail.com"); I.fill("Password", "somebasicpass123"); I.click("Log in");

Let’s get complicated and note that it can be a powerful tool too if you can code: In this scenario, let’s create a function where an admin user logs in and creates another user.

Creating cool functions:

  • Set up variables so the user doesn’t have to input email and password everytime
  • Added function LOGIN that we will call in different test cases

Login Function 1.1 (login_as_admin)

// Login function as admin // Your variable here LOGIN = { userLogin fuction() { // Given that user is in the login page I.goTo("https://crazydeveloplinkhere.com/"); I.fill("Email", "myprivateworkemail.com"); I.fill("Password", "somebasicpass123"); I.click("Log in"); } }

How to call Login Function 1.1 First, we have to import the function here:

// For importing function TEST.run("Functions/login_as_admin")

Second, call the function login:

// For importing function TEST.run("Functions/login_as_admin") // Login as admin LOGIN.userLogin()

Third, add the script where the admin user can add another user: This would be the way the user navigates to the User module and creates a new user.

In these images, we create a script that will navigate users from the user list and create a new user:

// Creating User I.goTo("https://staging.app.any-factory.com/users"); I.must.see("+ Add User"); // Validation if button text translation is showing correctly I.click("+ Add User"); // Clicking the button

User module list sample script

// Fill user field and create new admin user I.select("Admin"); I.fill("First Name", "New"); I.fill("Last Name", "User"); I.fill("Email", "newuser@sample.com"); I.click("Country"); I.click("Thailand"); I.click("Create");

Creating new User sample script

To be honest, for me automation and manual testing has its own pros and cons. Here are some:

Automated Pros:

  • Can help find more bugs
  • It can increase speed and accurate testing in regards with results
  • Processes are recorded and allows to reuse and perform the test/s in daily basis

Automated Cons:

  • Difficult to check the UI colors, sizes, fonts and button sizes.
  • Test maintenance and tools might be expensive and increase the cost of the project.
  • It has limitations which lessens the scope of automation.

Manual Pros:

  • Can get fast and precise feedback in terms of UI
  • Less expensive
  • Not time consuming compare to automation that requires coding

Manual Cons:

  • More open to errors where tester can missed
  • It cannot be re-use. Tester can only track by defect or project management tools
  • Requires more time

It also depends on the product/project you are working on. The latter, the UI always changes to that means we also have to change/update the script we made and test it manually.

From the examples above, I may not be an expert but I think doing some simple scripts and exploring the different automation tools would make our QA lives easier, better and more productive. To add, UIlicious is not the only tool that can help us. We have selenium, katalon and many more.

Originally published at https://anymindgroup.com.

--

--

--

AnyMind Group has created one of the first end-to-end brand enablement platforms, developing and providing inter-connected software and offerings to enable businesses and individuals — from brand building, manufacturing and e-commerce, to marketing, logistics and global expansion

Recommended from Medium

Firebase Emulators Suite — Cloud Functions, Database, Firestore and Hosting

8 VS Code Extensions That Will Boost Your Development Speed

Time lapse of highway

Step by step configuration of OGG Plug-in for Oracle Enterprise Manager 13c

THINK LIKE A PROGRAMMER!

3 Pitfalls in Scrum teams

Photos credits to Jamie Haughton on Unsplash

Get Unity & Begin Your Game Project

Head First Java-Chapter 4

[Tech Blog] Introduction to NX and Monorepos

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
TeamAnyMind

TeamAnyMind

More from Medium

USE MICROSOFT INFORMATION PROTECTION TO PREVENT DATA LEAKS

Flask Monitoring Dashboard

Pimcore X New Release — Webkul Blog

Improve application performance with google cloud functions