Support Guide

Overview

BeatBlip is a unified and reliable solution for software test automation that’s helping organizations deliver quality software on time and within budget.

Software solutions today serve a wide variety of platforms and devices. In the connected world where people, processes, and businesses increasingly depend upon software, ensuring the quality and reliability of the software is critical. BeatBlip integrates with software development processes and makes automation quick to implement and easy to maintain. Its cloud based and extensible platform ensures efficient team collaboration for delivering high quality software at low cost.

BeatBlip eliminates the need for programming for functional test automation, of Web Applications, Mobile Apps, and APIs, by offering a unified and action keyword based approach. While on one hand BeatBlip empowers non-programmers to automate testing comfortably, on the other it enables sophisticated automation engineers to extend its capabilities with the same ease.

Setting Up – BeatBlip Agent

System Requirements

The following are recommended requirements for the computer system that you would like to use for installing BeatBlip agent for executing automated tests.

Minimum Hardware Requirements

  • Intel® i5 or i7 processor
  • 1 GB free hard disk space
  • 8 GB RAM

Windows OS and Software Requirements

  • Microsoft® Windows XP™ SP2 (32 bit), Vista (32/64 bit), Windows 7 (32/64 bit), Windows 8 or higher
  • Java 1.6 or higher
  • Selenium Drivers: Internet Explorer, Chrome, Mozilla GeckoDriver

Mac OS and Software Requirements

  • OS X version 10.7 or higher
  • Java 1.6 or higher
  • Selenium Drivers: Chrome, FireFox, SafariDriver

How to delete a Test Case

Here are the steps to delete a Test Case:

  1. Login to BeatBlip application.
  2. Drill down and select the desired test suite which has the concerned test case(s).
  3. Click the garbage bin icon on the right side of the test row (outlined in red).
  4. Click ‘Delete‘ on the prompt to delete the test case.
  5. You can see now that the concerned test case has been deleted.

delete test

How to remove a project

Here are the steps to delete a Project:

  • Login to BeatBlip application.
  • Drill down and right-click the desired project which has to be deleted.

remove project

  • Click ‘Remove
  • Click ‘Delete‘ on the prompt
  • You can see now that the concerned project has been deleted.

How to delete a Test Suite

Here are the steps to delete a Test Suite:

  • Login to BeatBlip application.
  • Drill down and right-click the desired Test Suite which has to be deleted.

remove test suite

  • Click ‘Delete‘ on the prompt
  • You can see now that the concerned Test Suite has been deleted.

How to rename a Test Suite

Here are the steps to rename a Test Suite:

  • Login to BeatBlip application.
  • Drill down and right-click the desired Test Suite which has to be renamed.

rename test suite

  • Click ‘Rename‘ on the prompt
  • Write the new name for the Test Suite
  • Click ‘Save’
  • You can see now that the concerned Test Suite has been renamed.

How to rename a Project

Here are the steps to rename a Project:

  • Login to BeatBlip application.
  • Drill down and right-click the desired Project which has to be renamed.

rename project

  • Click ‘Rename‘ on the prompt
  • Write the new name for the Project
  • Click ‘Save’
  • You can see now that the concerned Project has been renamed.

How to import CSV data file and use the data fields as variables

BeatBlip lets you import data from a CSV file and use the contained Data Fields as variables in the Test scripts.

See the steps below on how to import a file, how the data will look post import, and how that data can be used in a script. The steps assume that your CSV data file content is as below:

username/password

1. Select a project and go to Data > Manage Test Data from the Top Menu.

Manage test data

2. Click on Import from File.

import from file

3. A new tab will appear to Choose the file.

Choose file

4. Select a File and click on Upload Icon.

upload file

5. This will Upload the file with a random generated name. Click on that name you will see as below:

file uploaded

6. Click on save button.

7. Now go to the Test Case in which you want to associate the data.

Click on test case

8. Right Click and click on Associate Input data.

Associate input data

9. A new popup will appear. Select the data set and click on Associate button.

associate data with test case

10. In order to use the data set use the variable name with the $ sign in Brackets { } .

variable name with $

11. Now Sync the project and Execute it.

12. The complete Script will run for all the data sets. Suppose you have given 2 data sets it will run 2 times.

How to use Environment Specific Data

BeatBlip allows to have environment specific data via data in addition to Database connectors. As an example, if you want to leverage a script in Dev, QA, and UAT below are the steps you would take for making your scripts environment agnostic.

Step 1:

Login to BeatBlip Web Application, Select a project and go to Data > Manage Test Data

You will see the below screen:

Manage test data

Data Settings : It is the name of the Environment.

Name : It is the Test data name.

Step 2:

Create 2 Data settings (Environment settings). We can create as many as you want but for reference we are taking 2.

Step 3:

Name 1 Data setting as “default”. This is the mandatory name for all the default environment settings.

Give some name in the Test data name. Let’s say Test Data File

default data setting

Name the other data file with the name of your another environment. Let’s say QA.

Give the same name here as you have provided in the default i.e., Test Data File

QA data setting

Step 4:

Now give some keys with its associated value in the default environment and similarly in the Test Data File of QA environment.

Note: The key names should be same in both the environment only its value differs as per the environment.

default Test Data File:

keys for default environment

QA Test Data File:

keys for QA test data

Step 5:

Now in order to run the test case with specific environment simply go to the particular test case right click it and then click on associate input data

associate input data with test

Step 6:

After clicking associate input data a pop up will appear to select your Data File.

associate data with test case popup

Click on the data file name and click Associate.

Doing this will associate the data file with the test case.

Step 7:

Now we have associated both the environments i.e., default and QA with our test case.

Now we can run our test case with either of these environments.

In order to run the script with default environment go to Desktop Client and open Settings

We will see Data Setting Name there.

verify data setting name in desktop client settings

Here default is selected because BB provides the default Data settings name with default environment.

So we need not to do anything else to run our test case in the default environment.

Just go to the Run and execute the test case it will take all the key values from the default environment.

Step 8:

Now in order to run same test case with the QA environment data set just change the name of the Data Setting Name from default to QA

verify QA data setting name in desktop client settings

Now it will take all the Key values from the QA environment data sets which were created in the Manage Test Data section.

Important Points:

1. Name of test Data File should be same for all environments.

2. Inside the Test Data file, all the key names should be the same only its value will differ as per the environment.

3. All the Keys inside any data file should be present in the default environment data file.

4. Data sets defined under “default” data setting will be considered for other environment too only if they have same name.

BeatBlip Commands

BeatBlip uses action keyword based approach for automation. Each keyword simulates a specific user action on the application through the browser controller.

Below is the list of most commonly used keyword based BeatBlip commands:

Set

Set is the very basic command of BeatBlip. It allows to create dynamic variables. The value of the variables can be known up front or determined on the fly.

For example, it can be some static known value or a result of some database query, mathematical computation, or some other process.

Below are some examples depicting how this command can be used –

Command

Page

Element/Variable

Parameters

Notes

set

index

10

Creates a variable named “index” and sets its value to “10”

set

index

${_math(sum,10,5){

Sets “index” variable value to 10+5 i.e. 15

set

url

“http://www.beatblip.com”

Sets “url” variable value to “http://www.beatblip.com”

set

entityname

“Auto Name ${__time()}”

Sets “entityname” variable to “Auto Name ” suffixed by current date time stamp.

set

time

${__time()}

Sets the “time” variable to current date time stamp.

Once a variable is created using “set” command, its value can be accessed via ${VARNAME} syntax. Example:

Command

Page

Element/Variable

Parameters

Notes

open

${url}

Store

Store is similar to Set command. The only difference is that store is used to store the text value of a UI element into a variable.

Usage of the command:

Command

Page

Element

Parameters

Notes

store

PAGENAME

ELEMENTKEY

VARNAME

And it will store the “text” value of the page element located by ELEMENTKEY into a local variable named VARNAME.

Example:

Command

Page

Element

Parameters

Notes

store

accountpage

heading

pagetitle

Will store the value of the element located by “heading” into variable name “pagetitle”.

verifyequal

accountpage

${pagetitle}

“My Title”

Will check whether the value of the element located by “heading” (i.e. the one stored in “pagetitle” variable is same as “My Title”

Use store command where you need to remember the value of an element and use set command wherever you need to remember some dynamic value which could be static, environment setting, a result of a function, or a combination of all.

Open

Opens the provided URL in the browser. The URL can be static or dynamically built URL as shown in the examples below.

  • open http://www.beatblip.com
  • open $G{baseurl}
  • open “$G{baseurl}/testpage.htm”

Back

Performs a browser back operation i.e. navigates back to the last visited page. It does not take any arguments.

  • set starturl http://www.beatblip.com
  • open ${starturl}
  • open ${starturl}/support/beatblip-command-keywords/
  • back

Above commands will first open beatblip.com, navigate to command keyword page, and finally back to beatblip.com through back operation.

Refresh

Refreshes the current page. Simulates browser refresh function. Like “back” command, refresh also does not take any arguments.

  • open ${testpage}
  • refresh

Above commands will open a page, do something on it, and then refresh it.

Enter

Enters the specified value in the page element (Text Box or Text Area) identified by the provide element locator. If there is any existing content in the element, it is removed.

  • enter PAGE ELEMENTKEY VALUE

PAGE – The name of the page. This maps to the locator file where elementkey would be searched

ELEMENTKEY – The unique key whose value, in the page locator file, provides the xpath to the target field element

VALUE – The new value to be entered in the field. Value can be static or dynamic.

Below are some examples –

Example of a static value:

  • enter login username “testuser”

Example of a dynamic value retrieved from global variable:

  • enter login username $G{username}

Dynamic value retrieved through a DB query:

  • enter login password ${__sql(select_PwdFromSecureDB)}

Clear

Clears the value of a field. Expects the field locator key as the argument.

  • clear PAGE ELEMENTKEY
  • clear login loginerror

Select

Selects the specified option in the dropdown field identified by the provided locator.

  • select PAGE ELEMENTKEY OPTION

PAGE: The name of the page locator file that contains locator keys and values for all elements on that page

ELEMENTKEY: The key to the locator that identifies the target element on the page

OPTION: The option to select from available options. The option can be static or dynamic.

Below are some examples:

  • set servicetype “Premium”
  • select subscribe servicetype “Basic”
  • select subscribe servicetype ${servicetype}
  • select subscribe servicetype “${servicetype} Service”

First command selects “Basic” option. Second selects an option indicated by “servicetype” variable i.e. “Premium”. And third and last command selects the option that matches “Premium Service”.

Click

Clicks a clickable element such as link and button.

  • click addentity submit

Clicks an element identified by “submit” locator on page “addentity”.

Clickif

Clicks an element only if it’s present. Ignores otherwise. In other words, doesn’t result in any error if the element is not present.

  • clickif addentity submit

Clickuntil

Keeps clicking an element at an interval of 10 seconds until the element’s value matches the specified value.

  • clickuntil PAGE entitystatus active

JSClick

Performs a javascript based click operation.

  • jsclick PAGE ELEMENTKEY

MoveAndClick

Moves the mouse over to an element and clicks it.

  • moveandclick PAGE ELEMENTKEY

RightClick

Right clicks and selects a menu/submenu option.

  • rightclick PAGE ELEMENTKEY option

Check

Checks a checkbox element. Does not do anything if the element is checked already.

  • check PAGE ELEMENTKEY

Uncheck

Unchecks a checkbox element. Doesn’t do anything if the element is already unchecked.

  • uncheck PAGE ELEMENTKEY

Alert

Alert command handles pop-up alerts. It supports two arguments “dismiss” and “accept”.

  • alert dismiss — dismisses the alert popup
  • alert accept — clicks ok on the popup

SwitchTo

Switches to the specified window. Multiple options are supported for “switchto” command.

  • switchto PAGE “main”|”child”|index|ELEMENTKEY

“main”: Indicates primary window

“child”: Indicates secondary window

index: Indicates the index of the frame to switch to. e.g. 1, 2, 3 etc.

ELEMENTKEY: Indicates the key to a specific element locator

  • switchto main — switches to main window
  • switchto child — switches to “child” i.e. secondary pop-up window
  • switchto 3 — switches to a frame at index = 3
  • switchto testpage elementkey — switches to target frame identified by elementkey

Wait

Waits for specified period of time. The time can be provided as standard keywords or specific number of milliseconds.

  • wait wait_veryshort|wait_short|wait_medium|wait_long|wait_verylong|SOMEVALUE
  • wait wait_medium

Waits for number of milliseconds defined by wait_medium configuration setting

  • wait 1000

Waits for 1000 milliseconds

Warning! This command must be used sparingly to avoid inflating the test run time.

WaitForHide

Waits for an element to hide. This is one of the ways to avoid giving a specific wait period. For example, there are instances where you want to proceed with the test when some element such as a “busy icon” disappears on the page. Instead of estimating how long it might take the busy icon to go away, it’s best to just wait for it hide. This avoid excess of not-enough waiting which could lead to inconclusive test outcome.

  • waitforhide PAGE ELEMENTKEY
  • waitforhide acountlist busywheel

WaitForShow

This command is similar to waitforhide. The only difference is that in this case, the automation engine waits for an element to display.

  • waitforshow PAGE ELEMENTKEY
  • waitforshow acountlist pagetitle

VARIABLES

A Software Test Automation Framework is not of much use if it cannot offer a robust yet simple mechanism to handle the test data which is core to software testing – manual or automated.

Apart from static data input, tests often require data that is dynamically retrieved from some data source like relational Database or File, or is a result of some run-time process execution or computation.

BeatBlip variables empower test engineers to take full control over their test data so that it stays valid across multiple releases and environments, ensuring the repeatability of the automated tests.

What is a Variable

Variables are a way to specify a dynamic value as a test input. The value may be something that’s applicable to all the tests, a specific set of tests, or just a single test. And therefore BeatBlip offers following scope-based variables.

Type

Syntax

Scope

Global

$G{VARNAME}

All Tests

Local

${VARNAME}

Specific Test

Session

${VARNAME}

All tests within a test suite

Function

${__FUNCNAME()}

Can be Local or Session

Note:

  1. No specific variable syntax is required if you are using BeatBlip GUI version
  2. In the command line version, syntax for Local and Session variables is same. The difference lies in where they appear in the test file. Variables appearing before all Test Cases are treated as Test Suite level variables.

Global Variables

Global variables are environment settings that are supplied as part of the Test Automation Engine launch. These include things such as application base URL, Username, and Password – things that are same for all tests of an application.

Global variables are defined outside the tests, in configuration settings. Tests cannot modify them but can reference them on need basis.

Example:

  • open $G{baseurl}

Where “open” is a command keyword and “baseurl” a global setting which could be set to anything like http://www.beatblip.com

  • enter login usernametxt $G{username}

Where “enter” is a command keyword, “login” the page name, “username” the key to Username text field and “username” the global setting for username

Local Variables

Local variables are test-specific. They allow a test to create a variable for holding a data value which can be used as-is in subsequent steps of the same test.

For example, when a test engineer needs to set the value of a Text Field and then in a subsequent step need to confirm that the value indeed matches what it was set to, framework needs to remember what the original entered value was. To accomplish it, tester would first create a local variable with some value. And then in the validation step refer to the same variable to do the match.

Example:

  • tc 555 “Testing Google Search”
  • set searchtext “BeatBlip”

It creates a local variable named “searchtext” with value as “BeatBlip” and the scope of the variable is limited to test case 555.

  • enter searchpage searchfield ${searchtext}

Enters the “BeatBlip” search text into a field identified by “searchfield” xpath.

Session Variables

Session variables are similar to Local variables except that their scope spans the whole test suite i.e. all the test cases within a suite. For example, if a set of test cases require Current Date as a test input, one can define a date variable at the test suite level and reference it in all the test cases as opposed to getting the date every time.

Example:

  • set searchtext “BeatBlip”

It creates a local variable named “searchtext” with value as “BeatBlip” and the scope of the variable is limited to test case 555.

  • tc 555 “Verify Google Search with Enter key”
  • tc 556 “Verify Google Search with Search button

Function Variables

Functions are a way to handle situations where tester needs to retrieve the test input from database or some other data source such as file, or situations where the test input is a result of some process. BeatBlip offers two types of function variables – User Defined and In-Built.

Example:

  • run ${__mycustomfunc()}

Executes a user defined function named “mycustomfunc”

  • set currentdate ${__date()}
  • enter testpage datefield ${currentdate}

Sets “currentdate” variable to the value returned by “date” function. And then enters that value in a field identified by “datefield” xpath.

FUNCTIONS

BeatBlip functions facilitate dynamic data handling. Whether it’s about retrieving data from a database on the fly, updating some DB settings to meet the prerequisites of a test scenario, determining or computing some value on the fly, or simply about encapsulating some commonly used set of steps into a single test step, functions offer an easy route.

BeatBlip In-Built Functions

  • __time()
  • __date([ADJUSTMENTDAYS])
  • __sql(SQLFILENAME [, varname1:varvalue1, varname2:varvalue2, …varnameN:varvalueN)]
  • __math(sum|minus|multiply|divide, operand1, operand2)

Time (__time) Function

This function returns the current date-time stamp in yyyy-MM-dd’T’HHmmss format. This function is often used in conjunction with variable values to make them unique. Example:

  • set entityname “Auto Entity ${__time()}”

This creates “entityname” variable with value like “Auto Entity 2013-07-01T102530”.

Date (__date) Function

This function returns current date. If “adjustment days” are provided as argument, the date is adjusted by those many days.

Examples:

  • set startdate ${__date()}

Sets the “startdate” variable to today’s date

  • set enddate ${__date(30)}

Sets the “enddate” variable to 30 days in the future

  • set lastdate ${__date(-30)}

Sets the “lastdate” to 30 days in the past

Sql (__sql) Function

This function executes a SQL query. For select queries, it returns the first field value in the select statement. For update and inserts, it does not return any value.

Often software needs to be tested under various data and environment conditions. And for an automated test to be repeatable, input test data must stay valid. It’s not hard to keep the test data valid if it doesn’t change over a period of time or across test environments. However, in real software world, the availability of exact same test data just cannot be guaranteed – unless of course you undo every data change you make.

  • Applications are often tested against multiple databases which are deliberately designed to mirror various flavors of end customers’ data. A piece of data that is valid in one test database may not be present at all in the other.
  • Unless frozen, even the same database may undergo changes over a period of time or over multiple releases. Therefore, one cannot count on the state of a particular test data for long.

Using test data directly from the database, as opposed to hard-coded values, allows testers to run the same test on multiple databases. And having the ability to update some data in the database, gives testers the flexibility to ensure test data meets the test criteria. In BeatBlip, this is made possible via an in-built SQL function. It is an advanced function that can handle static SQL or a SQL statement with any number of dynamic variables.

Examples:

  • run ${__sql(select_discount_type)}

Executes a query stored in file named “select_discount_type.sql” as is

  • run ${__sql(select_discount_type, countrycode:US)}

Executes a query with dynamic variable named “countrycode” but replaces the dynamic variable with provided value “US” before executing the query

  • set accountnumber ${__sql(select_account, userid:303030)}

Selects the account information for userid = 303030 and sets the “accountnumber” variable to the retrieved value.

Math (__math) Function

Math returns the result of the specified mathematical operation on the two operands. The operation can be addition, multiplication, or division.

And operands can be normal values, dynamic variables, or a combination.

Examples:

  • set profit ${__math(minus, ${cost}, ${price})}

Performs cost – price operation and sets the “profit” variable to resulting value. In other words, profit = cost – price.

  • set newcost ${__math(sum, ${cost, 2)}

Performs cost + 2 operation and sets “newcost” variable to the resulting value. This is equivalent to: newcost = cost + 2.