Support Guide

1.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.

Yes No

2.Setting Up – BeatBlip Agent #

2.1.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
Yes No

3.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

Yes No

4.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.
Yes No

5.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.
Yes No

6.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.
Yes No

7.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.
Yes No

8.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.

Yes No

9.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.

Yes No

10.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:

Yes No

10.1.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}

Yes No

10.2.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.

Yes No

10.3.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”
Yes No

10.4.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.

Yes No

10.5.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.

Yes No

10.6.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)}

Yes No

10.7.Clear #

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

  • clear PAGE ELEMENTKEY
  • clear login loginerror
Yes No

10.8.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”.

Yes No

10.9.Click #

Clicks a clickable element such as link and button.

  • click addentity submit

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

Yes No

10.10.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
Yes No

10.11.Clickuntil #

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

  • clickuntil PAGE entitystatus active
Yes No

10.12.JSClick #

Performs a javascript based click operation.

  • jsclick PAGE ELEMENTKEY
Yes No

10.13.MoveAndClick #

Moves the mouse over to an element and clicks it.

  • moveandclick PAGE ELEMENTKEY
Yes No

10.14.RightClick #

Right clicks and selects a menu/submenu option.

  • rightclick PAGE ELEMENTKEY option
Yes No

10.15.Check #

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

  • check PAGE ELEMENTKEY
Yes No

10.16.Uncheck #

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

  • uncheck PAGE ELEMENTKEY
Yes No

10.17.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
Yes No

10.18.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
Yes No

10.19.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.

Yes No

10.20.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
Yes No

10.21.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
Yes No

11.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.

Yes No

11.1.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.
Yes No

11.2.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

Yes No

11.3.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.

Yes No

11.4.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
Yes No

11.5.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.

Yes No

12.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.

Yes No

12.1.BeatBlip In-Built Functions #

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

12.1.1.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”.

Yes No

12.1.2.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

Yes No

12.1.3.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.

Yes No

12.1.4.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.

Yes No