contents 1. introduction 1akaat.com/akaatstudio_userguide.pdf · 2020. 7. 6. · 1 contents 1....
TRANSCRIPT
1
Contents
1. Introduction ......................................................................................... 1
1.1. Configure akaAT Overview ........................................................... 1
1.2. Supported Environments .............................................................. 2
1.3. Quick Start ..................................................................................... 3
2. GUI and Preferences ........................................................................... 4
2.1. Toolbars and Views ....................................................................... 4
2.1.1. Toolbar ...................................................................................... 4
2.1.2. Editors ...................................................................................... 7
2.1.3. Views ....................................................................................... 13
2.2. akaAT Help ................................................................................... 14
2.3. akaAT Studio Preferences .......................................................... 15
3. Projects .............................................................................................. 15
3.1. Manage Test Project .................................................................... 15
3.2. Project Settings ........................................................................... 20
4. Testing Design .................................................................................. 21
4.1. Create Test Case.......................................................................... 21
4.2. Elements of Test Cases............................................................... 28
4.2.1. Control Statements ................................................................ 28
4.2.2. Core ......................................................................................... 29
4.2.3. Keyword Group ....................................................................... 35
4.2.4. Windows .................................................................................. 45
4.2.5. Mobile ....................................................................................... 46
4.3. Execute a Test Case ..................................................................... 47
5. Values Types ....................................................................................... 47
6. Web Test Design ................................................................................. 50
6.1. Introduce to Web Testing ............................................................. 50
7. Web Test Objects ................................................................................ 52
2
7.1. Parameterize Web Test Objects ................................................. 53
7.2. Handle WebDrivers ...................................................................... 54
8. Mobile Test Design ............................................................................. 54
8.1. Introduction to akaAT Mobile testing .......................................... 54
8.2. Locators and Object Identification .............................................. 57
8.3. Mobile Test Objects ...................................................................... 58
9. Windows Desktop Apps Test Design ................................................ 59
9.1. Introduction to Desktop App Testing .......................................... 59
9.2. Set up WinAppDriver .................................................................... 59
9.3. Windows Test Objects .................................................................. 60
10. Keywords ........................................................................................... 61
11.1. Test Suite ................................................................................... 123
11.2. Executing Tests on Multiple Test Cases in Parallel ................ 124
11.3. Reports and Execution Log ...................................................... 127
1
1. Introduction
akaAT Studio is a smart, handy, and scalable automation solution built for
both beginners and expert testers everywhere. The studio has been built
and developed by IVS.AT department – a specialized software
development unit with independent testing service which is dedicating for
FPT Software and outside abroad customers.
akaAT Studio revolutionizes the use of open-source test automation
frameworks to eliminate the technical complexities. This revolution allows
developers and QAs to set up, create, run, report, and manage their
automated tests for Web and Mobile Testings efficiently.
Documents
Our documentation center provides you with guides, tutorials, and
reference materials. This resource helps you get to know and familiar with
akaAT Studio features. Additionally, this knowledge base is critical to your
configurations, features utilization, and successfully creating automation
test scripts.
The documents contain detailed information on various components
of a test case/test suite, and akaAT Studio features.
After designing a test, Execution and Reporting guides you on how to
run your test scripts as well as provide a comprehensive view and
insights on your test results. Before executing your tests, remember
to check akaAT Studio's supported execution environments and
visual analysis of test results.
Community Support
The akaAT Community with fellow users and experts can help you with any
issues while using akaAT products. You can also suggest new features for
akaAT Studio, as well as report bugs for us. The akaAT team welcomes
and appreciates your suggestions and contributions to make our products
better and better.
1.1. Configure akaAT Overview
If you don't have an account with akaAT Studio, you won’t be able to run
testing project.
Configurations for Web UI Testing
2
• If you do Web Testing, make sure to install you preferred web
browsers. Refer to the list of supported browsers for more details.
• Internet Explorer must be configured to run automation tests on IE.
Configurations for Mobile UI Testing
• Mobile on Windows
• Mobile on macOS
1.2. Supported Environments
System requirements
Requirement
Operating System Windows 10
CPU Minimum: 2 GHz or faster 32-bit (x86) or 64-bit (x64) processor
Memory akaAT Studio Minimum: 2 GB RAM (32-bit) or 4 GB RAM (64-bit) Recommended: 4 GB RAM (32-bit) or 8 GB RAM (64-bit).
Hard Driver At least 1 GB available hard disk space. Extra disk space is required depending on project source codes and generated execution reports.
Java JDK Jdk 8 – 13
Browsers
Desktop Browsers Version on Windows
Version on macOS
Note
Internet Explorer
9, 10, 11 N/A
Required IE configurations: Internet Explorer Configurations
3
Microsoft Edge 18 N/A
Firefox
56+ 56+
To use Firefox 57 with akaAT Studio, please use akaAT Studio v5.1+
Google Chrome 58+ 58+ 58+
Mobile
Installation Version on Windows
Version on macOS
Appium
Android 6.x, 7.x, 8.x, 9.x
6.x, 7.x, 8.x, 9.x 1.12.1+
iOS Not Available 9, 10, 11, 12, 13 1.12.1+
1.3. Quick Start
This Getting Started Guide gives you a quick introduction to akaAT Studio,
from activation to running your first automation test.
Environment Configuration
First, verify if your computer meets the System Requirements of akaAT.
• If you do Web UI testing, no additional settings are needed except to
make sure the required browsers are installed. Check this list for all
supported browsers.
• In case of Mobile testing, first install Node.js and enable USB
Debugging mode on your device.
4
Create a Project
Enter the name of your new project and the location to store the project
data on your machine. Click OK.
A new project will be generated at specified location.
Create your first Test Case
- Select option to create New Test Case from the main folder Test
Cases of current project.
- Provide the name for your test case then click OK.
- A new test case will be created accordingly. The test case editor is
also displayed for editing.
- You can compose the test case by manually entering test steps.
NOTE: You can specify the target browser to be launched by selecting from
the Open Browser step. Click on Platform and select respective browser.
- Let's create a simple script like going to Google Search and
searching for some keywords and then view testing result inside Output
frame.
- Congratulations! You have just successfully created and executed
your first test case.
For further instructions and help, please refer to akaAT User Guide.
2. GUI and Preferences
2.1. Toolbars and Views
2.1.1. Toolbar
The main Toolbar contains the common actions which you usually
perform. (e.g. execute or save automation tests)
Menu text Description
5
File Create project, open project or exit
Edit Do main edit functions: undo, redo, cut, copy, paste, delete
Project Execute or stop the current project
Tools Use to set up web driver and setting activities
Window Select option to view Projects, progress bar, output, close or reset window
Help Contain license info and tool details
Icon Description
Save the current opened test artifact.
Save all opened test artifact.
Run the current open test case.
Stop the current execution.
Open Appium.
Tests Explorer View
The Tests Explorer view allows you to browse the structure of your projects
and access all test artifacts quickly. Using the context menu on the view,
6
you can create new artifacts, organize the view's items
Where:
Group Description
Project: <<name>> Display project name
Object Repository List all test objects of the current project
Test Cases List all test cases within current project
Test Suites List all test suites of the current project
Test Datas List all test data of the current project
Capabilities Key/value pairs that represents for browser properties such as: browser name, version, go incognito mode. Configure additional driver or device properties with mobile
Reports List all generated reports of the current project
Global Variable The global variables can be accessed anywhere inside your project
7
Business Keywords Users define keywords to extend the capability of akaAT Studio. This feature allows users to expand keywords and reuse them later.
2.1.2. Editors
The editor is used to modify the detailed information of an object. Each test
artifact has its own editor.
Test Case Editor
When you open a test case, its detailed information is shown in the editor
that contains the following tabs:
• Step tab
• Variable tab
Step Tab
The steps tab show all steps defined for test case.
Variable Tab
The variables tab show all variables defined for the test case.
8
Test Object Editor
When you open a test object, its detailed information including properties
and object identification mechanism is displayed in the Test Object editor.
9
Test Suite Editor
When you open a test suite, its detailed information is displayed in the Test
Suite editor as below:
• Add test case want to run, click on check box to choose or eliminate
test case from test suite.
• Choose number of test cases to run parallel at the same time.
• Execute test suite.
Data File Editor
When you open a data file, its detailed information including the data
source and preview data set... is displayed in the editor. Refer to Manage
Test Data for more details.
• Internal Data
The test data is defined internally inside your test project:
10
• External Data from CSV file
The test data is defined external CSV file which needs to import to your test
project as below:
1- Click on Export Data.
2- Then select data file from your local location.
3- Click “OK” to import the data.
11
After click “OK” button, list data from CSV file will display:
Keyword Editor
When you open a business keyword, a table with column of Steps,
UIObject, Data Input and Output which is displayed in the step tab. This
editor test steps are similar to the step of test cases where you can define
12
new custom keywords easily using Java. Refer to Introduction to Business
Keywords for more details.
- Step tab
List of orderly custom steps that defines for the test case
- Input Variable
The variables tab show all input variables defined for the business test
case.
- Output Variable
The variables tab show all output variables defined for the business test
case.
13
2.1.3. Views
Global Variables View
The Global Variables view allows you to browse the list of available global
variables defined in your project. Refer to Global Variables for more details.
Output View
The Output view shows the system logs of all run-time activities performed
while the automation test is being executed.
Progress Bar View
The Progress bar shows the real-time report/log of the test execution.
14
Test Suite Output View
The Test Suite output allows you to view detailed information of a
completed test execution for a certain test suite collection. Refer to Test
Suite Collection for more details.
2.2. akaAT Help
akaAT Studio has you covered. akaAT Team has designed a central help
page just for you from Tutorial, FAQs, User Guides to akaAT Studio built-in
Sample Projects or Recently opened projects.
Select Help from Menu text or access akaAT website http://akaat.com/ for
more details. The app will display akaAT Help page as shown below:
15
2.3. akaAT Studio Preferences
Driver Settings
Driver configurations are applied to web drivers: chrome, firefox, IE and
edge.
Select Tools >> Setting
Select link locates to web drivers on local position
3. Projects
3.1. Manage Test Project
Where to create your tests?
16
Choose the location for your test where you have all Read & Write
permission. Don't store your projects in the akaAT build folder.
1. Select File >> New Project from the main menu. The New Project
dialog will be displayed. Here you can choose the desired project name
and project location.
• Web, Mobile, Windows: All standard-features for Web, Mobile and
API Testing are available.
2. Specify the Name, Location for the new project and click OK. akaAT
will generate a project at defined location accordingly.
Open an existing test project
Select File >> Open Project from the menu. Browse to the folder where
your project is located and select it.
17
Delete project
To delete a project, simply do list of actions:
1- Right click on project name
2- Select Delete option
3- Click “Yes” to confirm delete project
18
Or user could:
1- Select project by click on project name
2- Click on Edit from Menu text
3- Click “Yes” to confirm delete project
19
20
3.2. Project Settings
Default Execution Settings
• Default execution: The default environment that akaAT Studio uses
for executing test scripts.
• Default Smart Wait: to tell the web driver to wait for the web page to
become static before any operations perform.
• Default wait for element timeout: The default timeout period (in
seconds) that akaAT Studio waits for the application under test to be
loaded when executing automation test.
• Log executed test steps: to decide whether the logs include
executed test steps or not.
• Post-Execution Options: These options decide the actions that
akaAT Studio performs after finishing test execution.
• Open report: Specify whether the report generated after your test
suite's execution finishes is to be opened immediately.
• Terminate drivers: Specify when any driver remains after execution
is terminated.
WebUI Settings
These settings decide the general behavior of akaAT Studio when
executing WebUI testing.
• Default wait when IE hangs: Specify the default period of waiting
that akaAT Studio should use in case IE hangs.
• Default page load timeout:
o Wait until the page is loaded: akaAT Studio waits for the web page to
load completely.
o Wait for (in seconds): The default timeout period (in seconds) that
akaAT Studio waits for the web page to load.
21
4. Testing Design
4.1. Create Test Case
In Manual View
Tutorial
akaAT Studio supports Keywords-Driven testing where test cases consist
of keywords that represent actions of users on the AUT (Applications Under
Test). This allows users with less experience in programming to easily
generate automation test. The below tutorial will give you step-by-step
instruction in order to create an automation test case in manual mode.
Given a sample test case with the steps as below:
• Open the browser and navigate to a website
• Click on certain control
• Validate if a control exists on the page
• Close the browser
Follow these steps to automate the above test scenario in Manual view:
1. Right click Test Cases > New > Normal Test Case from the
main menu. The Add New Normal Test Case File dialog will be
displayed. Provide the name for the new test case, then click OK
button.
22
2. Once a new test case is created, it is opened in Manual view.
This view allows users to create automation tests easily with little
programming skills required.
3. Select Add Step >> Web from the dialog box.
Select the Open Browser keyword. This keyword will open a
browser and navigate to the specified URL if provided. (selected
keywords will have their description displayed along for reference)
4. Click on Data Input >> Fill out Value for Data Input dialog then
click OK button.
23
The Data Input dialog displayed. Where:
Field Description
No The number of parameter for the selected keyword.
Param Name The name of the parameter.
Param Type The required data type for the parameter.
Value Type The type of your input value (e.g. strings, variables, data sources...)
Value Input value can be varied based on Value Type.
For now, enter the URL of Google demo AUT
(https://www.google.com/) into the Value column then click OK.
5. Add the Set Text keyword. This keyword uses to set text for
certain object.
24
Click on Data Input >> Fill out Value column for text search then
click OK.
6. Add the Verify Element Present keyword. This keyword
validates if a certain object is displayed on the executing browser.
Similar to the previous step, you need to specify the object to be used
with this keyword.
25
Always remember to set up times out and select respectively Object
from Object Repository will present below.
7. All captured objects in Object Repository are displayed in the
UI Objects dialog. Select your object then click OK.
26
8. Add the Click keyword. This keyword represents the click
action on a given object. Double click on the Object cell to provide
the object for the keyword.
27
9. Add the Close Browser keyword and save your test case.
10. Click on Run in the main toolbar to execute the test case.
28
akaAT Studio should be able to execute all the steps of the sample
test case.
4.2. Elements of Test Cases
4.2.1. Control Statements
In Manual View
Open a test case in Manual view, then Click on Add Step and
navigate to Control from Steps dialog. And finally click on OK button.
Refer to the following table for the usage of each statement:
29
Statement
Description Screenshot
For This statement accepts a range, list or array as input value so that akaAT Studio knows how many times to execute all steps within the For structure.
If This statement requires a boolean condition as input value. akaAT Studio will execute all steps within once the condition is triggered.
4.2.2. Core
In Manual View
Open a test case in Manual view, then Click on Add Step and
navigate to Core from Steps dialog. And finally click on OK button.
Select respectively keyword:
30
[Core] Verify Equal
Description
Verify if two objects are equal.
Parameters
Param Param Type Mandatory Description
actualObject Object Required Represent the actual object.
expectedObject Object Required Represent the expected object.
Returns
Param Type Description
Boolean
true if the actual number and the expected number are equal.
false if the actual number and the expected number are NOT equal.
31
[Core] Verify Greater Than
Description
Verify if the actual number is greater than the expected number.
Parameters
Param Param Type Mandatory Description
actualObject Object Required Represent the actual object.
expectedObject Object Required Represent the expected object.
Returns
Param Type Description
Boolean
true if the actual number is greater than the expected number.
false if the actual number is NOT greater than the expected number.
[Core] Verify Greater Than Or Equal
Description
Verify if the actual number is greater than or equal to the expected
number.
Parameters
Param Param Type Mandatory Description
32
actualObject Object Required Represent the actual object.
expectedObject Object Required Represent the expected object.
Returns
Param Type Description
Boolean
true if the actual number is greater than or equal to the expected number.
false if the actual number is NOT greater than or equal to the expected number.
[Core] Verify Less Than
Description
Verify if the actual number is less than the expected number.
Parameters
Param Param Type Mandatory Description
actualObject Object Required Represent the actual object.
expectedObject Object Required Represent the expected object.
Returns
33
Param Type Description
Boolean
true if the actual number is less than the expected number.
false if the actual number is NOT less than the expected number.
[Core] Verify Less Than Or Equal
Description
Verify if the actual number is less than or equal to the expected
number.
Parameters
Param Param Type Mandatory Description
actualObject Object Required Represent the actual object.
expectedObject Object Required Represent the expected object.
Returns
Param Type Description
Boolean
true if the actual number is less than or equal to the expected number.
false if the actual number is NOT less than or equal to the expected number.
34
[Core] Verify Match
Description
Verify if two strings match each other, the second string can be a
regular expression.
Parameters
Param Param Type Mandatory Description
actualText String Required Represent the actual text.
expectedText String Required Represent the expected text (can be a regular expression).
isRegex Boolean Required Indicate whether the expected text is a regular expression.
Returns
Param Type Description
Boolean true, if two given strings match each other; otherwise, false.
[Core] Verify Not Match
Description
Verify if two strings do NOT match each other, the second string can be a
35
regular expression.
Parameters
Param Param Type Mandatory Description
actualText String Required Represent the actual text.
expectedText String Required
Represent the expected text (can be a regular expression).
isRegex Boolean Required
Indicate whether the expected text is a regular expression.
Returns
Param Type Description
Boolean true, if two given strings do NOT match each other; otherwise, false.
4.2.3. Keyword Group
In addition to built-in keywords, you can define keyword group to extend the
capabilities of akaAT Studio. Once created, keyword group can be used
when implementing test cases, just like other built-in keywords.
36
Create Keyword Group
1. Select Business Keywords > Keyword Group > New > Keyword
Group from the current test case. The Add new E2E test case file dialog
is displayed. Enter a name for your keyword then select kind of keyword
group. Click OK.
By default, a class name cannot start with a number, contain spaces, or
have special characters. The Java naming convention suggests creating a
class name using a noun or a noun phrase, with the first letter of each word
capitalized, to better manage the project.
37
2. In manual, do the following code in your test steps as below example to
38
define a group keyword:
User will create keyword group nearly as normal test case, go through step
by step and specify its object, data input and output if needed.
Use Keyword Group
In Manual view
Follow the steps below to use your defined custom keywords
in the Manual view of a Test Case:
1. Open a test case in the Manual view and select Keyword Group from the command toolbar.
39
2. Then select keyword you want to use
3. and click OK
Variable Types
Type of Variables: There are two types of variables supported in akaAT Studio, as below: Test Case Variable
40
A Test Case Variable can be used to parameterize a test case or to call that test case with different inputs.
Global Variable (Execution Profiles)
A Global Variable can be accessed anywhere inside your project.
Refer to the subsequence sections for how to define a variable of each type. Test Case Variables You can manage Test Case Variable in the Variables tab of the Test Case Editor.
To add variable using grid view, switch to Variable tab of your Test Case. Then click Add Variable. A new row is added to the variable list. Modify the variable details and save the test case once done.
List of variables will display as below:
Use Variable in Test cases
41
From the current test step, click on Data Input. A dialog Data Input will display:
Select Source type: Variable then Click on Value column and select respectively variable:
42
Then click on OK button
Global Variables
Define a Global Variable A Global Variable in akaAT Studio is a variable which is used globally in the project. For example, if you are going to define a variable as a Global Variable, you can use it in any test case in the project. Global Variables can be managed in the Default Profile view.
1. Click on Global Variable from Explorer view on the left side
2. Then click on Add Variable. In the Variable dialog box, specify details for the variable then click OK.
43
3. The variable is added to the default profile accordingly.
User a Global Variable
Any test case across a project can use global Variables (e.g., input data for
keywords in Manual View).
1. Add Step to current test case
2. Select Global Variable type
44
3. Then select global variable name on Value column
45
4. And click OK.
4.2.4. Windows
In Manual View
Open a test case in Manual view, then Click on Add Step and navigate
to Windows from Steps dialog. And finally click on OK button.
Select respectively keyword:
46
4.2.5. Mobile
In Manual View Open a test case in Manual view, then Click on Add Step and navigate to Mobile from Steps dialog. And finally click on OK button.
Select respectively keyword:
47
4.3. Execute a Test Case
akaAT Studio allows you to run the entire test suite or an individual test
case. Before executing a test case or a test suite, keep in mind
the supported execution environments by akaAT Studio.
Open a test case/test suite, and click on of the main toolbar.
Test Environments
- Browsers: Select to execute your test on one of the supported browsers
(Chrome, Firefox, IE, Safari, Edge)
- Mobile Browsers: Select to execute your test on one of the supported
devices (Android, iOS)
- Mobile: Before executing your test, check if you have set up the
environment for mobile testing for Windows or for macOS. Select your
device among those listed in akaAT Studio.
5. Values Types
While designing automation test in akaAT Studio, users usually need to
configure data for certain test steps, such as:
- Pass input parameters to a test step.
- Get the output value from a test step.
You can select from a wide range of value types supported by akaAT
48
Studio as showed below:
Value Type Description
Constant The data is a value that will not change over time.
Variable
The data is a value that might be changed during execution. This type of data can only be referred within the scope of the test case where it is defined.
Global Variable
The data is a value that might be changed during execution. This type of data can be referred anywhere in the project.
Test Data Value The data is a value coming from a test data file.
Binary The data is a binary expression.
Boolean The data is a Boolean value that can be evaluated from a Boolean expression.
Test Case The data is a test case.
49
Test Data The data is a test data file.
Test Object The data is a test object.
Method Call The data is a method call.
Property The data is a public property value of an object.
This list describes how to provide data for each data type:
Value Type How to provide value for the property?
String Integer
Enter value directly into the Value cell.
Variable
Global Variable
Select preferred option from the Value drop-down list.
Boolean Select preferred option from the Value drop-down list.
50
6. Web Test Design
6.1. Introduce to Web Testing
This is a basic tutorial about how to begin testing with akaAT Studio. If you
are completely new to akaAT Studio or have just begun testing with the
app, this ‘Getting Started’ doc is for you. We will go over a few principal
steps, basic concepts, and operations in akaAT Studio. You will learn how
to create projects, create, verify, debug, as well as successfully plan and
execute test cases.
Before You Begin
akaAT Studio is simple and easy to use, even for users without much
programming and scripting experience. If you are new to akaAT Studio but
have some basic Java skills and a brief understanding of testing, then you
should have no problem making use of this tool.
To start, first, you need to verify if your computer meets the System
Requirements of akaAT Studio.
Get Ready!
Step 1: Set up a project
In akaAT Studio, you can create a new project from scratch or from one of
the sample projects sample projects we provided. Go to File >> New
Project and select your preference. Then, enter the name of your new
project and the location to store the project data.
51
Furthermore, all of the akaAT Studio codes in this tutorial are included in
the Getting Started Sample, which you can use as a reference.
Step 2: Create the first test case
Right-click on Test Cases > New > Normal Test Case
Click ‘Run’ to see how it works.
Step 3: Verification in the test case
Next, let’s add verification script to the test case to know whether the login
process is successful or not.
From the first test case, we have known the basic of how akaAT Studio
script works. Now let’s move further to create a more realistic test case with
the “Make Appointment” header verification.
akaAT Studio provides a rich set of verification keywords to easily deal with
that requirement. Once again, this kind of script can be done in Manual
mode.
52
After that, the execution results can be checked in the Progress Bar.
7. Web Test Objects
Create a Test Object
1. Select File > New > UI Object from the main menu. The New Test Object dialog is displayed. 2. Provide a name for the new test object, then click OK button. The new test object is created under the Object Repository of akaAT Studio.
Add an object property
1. In the Test Object Editor, click Add New.
2. The Add new locator dialog is displayed.
where:
Locator Strategy: The type of the object property. The drop-down list provides some standard options for your selection (XPath, Class, ID,
53
Name, Tag Name, CSS Selector, Link Text, Partial Link Text), or you can enter manually.
Locator Value: to complete element locator
3.The new property is added to the properties list as specified. You can also edit the properties' values here.
7.1. Parameterize Web Test Objects
Parameterize Web Test Objects and their properties
With parameterizing test objects, you can update test objects' locators
dynamically by using either local or global variables. This feature comes
in handy in these use cases:
- You want to perform a bulk action on a group of similar elements without
defining multiple Test Objects, such as checking on multiple checkboxes;
- You can only identify an object's locator during runtime because there's a
group of similar objects and the chosen one cannot be specified
beforehand in test scripts.
akaAT Studio supports parameterizing properties of test objects to handle
dynamic objects. Dynamic objects are those that have some particular
changes in their properties based on specific business rules. The example
below describes how to apply this feature.
Open the sample TestAkaAT project, navigate to Object
Repository/searchBox.or
1. Select the object whose properties you want to parameterize
2. Capture its locator and create a variable with this syntax
For more further, how to get an element xpath please read the relative doc
below:
https://www.guru99.com/xpath-selenium.html
54
7.2. Handle WebDrivers
From the main toolbar, select Tools >> Setting a Settings dialog will
display all of default set up drivers
8. Mobile Test Design
8.1. Introduction to akaAT Mobile testing
Appium is the best way for users to locate elements. It drives iOS,
Android, and Windows apps using WebDriver protocol
Introduce to Appium
Appium is an open-source tool for automating native, mobile web, and
hybrid applications on iOS mobile, Android mobile, and Windows desktop
platforms. Native apps are those written using the iOS, Android, or
Windows SDKs. Mobile web apps are web apps accessed using a mobile
browser (Appium supports Safari on iOS and Chrome or the built-in
'Browser' app on Android). Hybrid apps have a wrapper around a
55
"webview" -- a native control that enables interaction with web content.
Projects like Apache Cordova or Phonegap make it easy to build apps
using web technologies that are then bundled into a native wrapper,
creating a hybrid app.
Importantly, Appium is "cross-platform": it allows you to write tests against
multiple platforms (iOS, Android, Windows), using the same API. This
enables code reuse between iOS, Android, and Windows testsuites.
Here is an example about how to get an element locator in Appium.
Just in case, how to use Appium please follow Appium user guide for more
details.
Mobile on Windows
Appium: 1.15.0 onwards. Android: 6.x onwards (official releases).
Installing Appium To install Appium, follow these steps. Attention Make sure you install Node.js into a location where you have full Read and Write permissions. Setting Up Your Devices Turn on the phone's developer mode (go to Settings > Developer options).
56
Connect your Android phone to your computer via a USB cable. Confirm if prompted to accept/trust the device. In the Developer Options on your mobile user interface, enable:
USB debugging – Debug mode when USB is connected Install via USB – Allow installing apps via USB USB debugging (Security Setting) – Allow granting permissions and simulating input via USB debugging
Verifying the Setup Open a Mobile Testing Sample Project from website to run example. Before creating a new test case, we run Appium symbol to open Appium immediately without open Appium outside akaAT Studio.
After creating a new project, open android_capiability at MobileCapabilities in Capabilities folder to fill out the information matching to Appium’s desired capability.
Execute a test suite using an Android device:
57
If your test cases run successfully, you will see the results in the progress bar as follow:
8.2. Locators and Object Identification
In each test case, locators are an abstract way to define how an element
can be found.
Below are listed locators for a mobile automation test:
A) Id: Select element with the specified @id attribute.
B) Name: Select element with the specified @name attribute.
C) Class name: Locate element using a class name.
D) AccessibilityId: Select the element using AccessibilityId selectors.
E) Xpath: Locate an element using an XPath expression.
F) AndroidUIAutomator: Locate an element using an
AndroidUIAutomator attribute.
In order to use spy mobile to identify objects, the environment for mobile
testing will need to be set up. Refer to Install and Setup guide for more
58
details. This demonstration utilizes the sample project provided by the
akaAT Team, which comes with your product installation.
8.3. Mobile Test Objects
Create a Test Object
1. Select File > New > UI Object from the main menu. The New Test
Object dialog is displayed.
2. Provide a name for the new test object, then click OK button. The new
test object is created under the Object Repository of akaAT Studio.
Add an object property
1. In the Test Object Editor, click Add New.
2. The Add new locator dialog is displayed.
where:
Locator Strategy: The type of the object property. The drop-down list
provides some standard options for your selection (XPath, Class, ID,
Name, Tag Name, CSS Selector, Link Text, Partial Link Text), or you can
enter manually.
Locator Value: to complete element locator
3.The new property is added to the properties list as specified. You can
also edit the properties' values here.
59
9. Windows Desktop Apps Test Design
9.1. Introduction to Desktop App Testing
akaAT Studio fully supports automation test for desktop apps written in the
following platforms: Universal Windows Platform (UWP), Windows Forms
(WinForms), Windows Presentation Foundation (WPF), and Classic
Windows (Win32).
9.2. Set up WinAppDriver
First, you need to install WinAppDriver. Refer to Installing and Running
Windows Application Driver to install a WinAppDriver.
Set up Windows Application Driver on a local Windows 10 machine
There are two ways of installing the WinAppDriver on a local Windows 10 machine.
1. Open this folder C:\Program Files (x86)\Windows Application Driver, then double-click on WinAppDriver.exe file.
2. From the akaAT Studio toolbar, select Tools > Windows > Install WinAppDrivers. The Windows Application Driver Setup window will pop up. Follow the instructions to install the Windows Application Driver. Set up Windows Application Driver on a remote machine - Open Task Manager -> Select File -> Create a new task - Check Create this task with administrative privileges and enter cmd in the Open text box, then click the OK button.
60
-Enter cd to folder C:\Program Files (x86)\Windows Application Driver.
-Enter WinAppDriver.exe IP_Adress Port
where:
IP_Adress is the public IP address of the remote machine
Port is the public port of the remote machine. By default, it should be 4723.
9.3. Windows Test Objects
Manage Windows Test Objects
Create a Windows test object
1. Select File > New > UI Object from the main menu. The New Test
Object dialog is displayed.
2. Provide a name for the new test object, then click OK button. The new
test object is created under the Object Repository of akaAT Studio.
Add an object property
1. In the Test Object Editor, click Add New.
2. The Add new locator dialog is displayed.
61
where:
Locator Strategy: The type of the object property. The drop-down list
provides some standard options for your selection (XPath, Class, ID,
Name, Tag Name, CSS Selector, Link Text, Partial Link Text), or you can
enter manually.
Locator Value: to complete element locator
3.The new property is added to the properties list as specified. You can
also edit the properties' values here.
10. Keywords
Web UI Keywords
[WebUI] Back
Description
Simulate users clicking "back" button on their browser. [WebUI] Check
Description
Check a toggle-button (check-box/radio-button). Parameters
62
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Click
Description
Click on the given element. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Close Browser
Description This action will close all windows of the browser. [WebUI] Close Window Index
Description Close window with the given index. Parameters
Param Param Type Mandatory Description
63
index Object Required
The index of the window to close, index is 0-based number.
[WebUI] Close Window Title
Description Close window with the given title. Parameters
Param Param Type Mandatory Description
title String Required Title of the window to close.
[WebUI] Close Window Url
Description
Close window with the given URL. Parameters
Param Param Type Mandatory Description
url String Required URL of the window to close.
[WebUI] Delete All Cookies
Description
64
Delete all cookies of all window.
[WebUI] Deselect All Option
Description
Deselect all options.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Deselect Option By Label
Description Deselect the options with the given label (displayed text).
65
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
labelText String Required Displayed text of the options to be deselected.
66
isRegex boolean Required
true if the label is a regular expression, otherwise false
[WebUI] Deselect Option By Index
Description
Deselect the option at the given index. Index starts from 0. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
range Object Required
Index range of the options to be deselected. Example:
2 - index 2 "2,3" -
index 2 and 3
"2-5" - index 2 to 5 (2,3,4,5)
[WebUI] Deselect Option By Value
Description
67
Deselect the options with the given value.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
value String Required Value of the options to be deselected.
isRegex boolean Required
true if the label is a regular expression, otherwise false
[WebUI] Dismiss Alert
Description
68
Simulate users clicking on "Cancel" button of an alert popup (alert, confirmation popup, prompt popup).
[WebUI] Double Click
Description
Double click on the given element. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Drag And Drop To Object
Description
Drag an object and drop it onto another object. Parameters
Param Param Type Mandatory Description
sourceObject TestObject Required The source object.
destinationObject TestObject Required The destination object.
69
[WebUI] Drag And Drop By Offset
Description
Drag an object and drop it to an offset location.
Parameters
Param Param Type Mandatory Description
sourceObject TestObject Required The source object.
xOffset int Required x offset.
yOffset int Required y offset.
[WebUI] Execute JavaScript
Description
Execute JavaScript on the currently selected frame or window. The
provided script fragment will be executed as the body of an anonymous
function.
Parameters
Param Param Type Mandatory Description
script String Required The JavaScript to execute.
70
argument List Required The arguments to the script. Can be empty or null.
Returns
Boolean, Long, Double, String, List, Web Element, or Null
[WebUI] Forward
Description
Simulate users clicking "forward" button on their browser.
[WebUI] Get Alert Text
Description
Get displayed text of an alert popup (alert, confirmation popup, prompt
popup)
Returns
Param Param Type Description
text String Text of an alert popup
[WebUI] Get Attribute
Description
Get the attribute of a web element.
Parameters
71
Param Param Type Mandatory Description
to TestObject Required Represent a web element
attribute String Required Name of the attribute
Returns
Param Type Description
String Value of the object's attribute
[WebUI] Get Number Of Selected Option
Description
Count the number of options which are being selected the given web
element has.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
Returns
Param Type Description
72
int The number of selected option.
[WebUI] Get Number Of Total Option
Description
Count the total number of options the given web element has.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
Returns
Param Type Description
int The total number of option.
[WebUI] Get Url
Description
Get URL of the current window.
Returns
Param Type Description
String URL of current window.
73
[WebUI] Get Text
Description
Get the visible (i.e. not hidden by CSS) inner text of the web element,
including sub-elements, without any leading or trailing whitespace.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
Returns
Param Type Description
String Inner text of the web element.
[WebUI] Get Url
Description
Get URL of the current window.
Returns
Param Type Description
String URL of current window.
[WebUI] Get Window Title
Description
74
Get the title of the current window.
Returns
Param Type Description
String Title of the current window.
[WebUI] Close Window Title
Description
Close window with the given title.
Parameters
Param Param Type Mandatory Description
title String Required Title of the window to close.
[WebUI] Switch To Window Title
Description
Switch to the window with a given title.
Parameters
Param Param Type Mandatory Description
title String Required Title of the window to switch to.
75
[WebUI] Mouse Over
Description
Simulate users hovering a mouse over the given element.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Mouse Over Offset
Description
Simulate users hovering a mouse over the given element with the relative
position (x, y) from the top-left corner of that element.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
offsetX int Required x position in relative to the element.
offsetY int Required y position in relative to the element.
76
[WebUI] Navigate to Url
Description
Navigate to the specified web page.
Parameters
Param Param Type
Mandatory Description
rawUrl String Required
URL of web page to navigate to.If rawUrl doesn't contain protocol prefix, the the protocol will be http://.
Example:
https://www.google.com; file:///D:Development/index.html; kms-technology.com =>
http://kms-tecnology.com
[WebUI] Open Browser
Description
Open a browser and navigate to the specified URL. If the URL is left empty
then just open a browser.
Parameters
Param Param Type
Mandatory Description
rawUrl String Optional
URL of the web page to be opened can be left empty or null. If rawUrl doesn't contain protocol prefix, the protocol will be http://. For example:
https://www.google.com
file:///D:/Development/index.html
77
kms-technology.com => http://kms-technology.com
[WebUI] Refresh
Description
Simulate users clicking "refresh" button on their browser.
[WebUI] Right Click
Description
Right-click on the given element.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Right Click Offset
Description
Right-click on the given element with the relative position (x, y) from the
top-left corner of that element.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
78
offsetX int Required x position in relative to the element
offsetY int Required y position in relative to the element
[WebUI] Scroll To Position
Description
Scroll the viewport to a specific position.
Parameters
Param Param Type Mandatory Description
x int Required x position.
y int Required y position.
[WebUI] Scroll To Element
Description
Scroll an element into the visible area of the browser window.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
79
timeout int Required
System will wait at most timeout (seconds) to return result
[WebUI] Select All Option
Description
Select all options of the list.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
80
[WebUI] Select Option By Label
Description
Select the options with the given label (displayed text).
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
81
labelText String Required Displayed text of the options to be selected.
isRegex boolean Required
true if the label is a regular expression, otherwise false
[WebUI] Select Option By Index
Description
Select the option at the given index. Index starts from 0.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
range Object Required
Index range of the options to be deselected. Example:
2 - index 2 "2,3" -
index 2 and 3
"2-5" - index 2 to 5 (2,3,4,5)
82
[WebUI] Select Option By Value
Description
Select the options with the given value.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
value String Required Value of the options to be selected.
isRegex boolean Required
true if the label is a regular expression, otherwise false
83
[Windows] Send Keys
Keyword sendKeys Description: Simulate keystroke events on the specified element by pressing a key or a combination of keys.
Keyword name: sendKeys Keyword syntax: sendKeys(windowsObject,strKeys) Parameters:
o Name: windowsObject Description: An object that describes the locator and
locator strategy to find Windows Element. Parameter Type: WindowsTestObject Mandatory: Required
o Name: strKeys
Description: A combination of keys to press. Parameter Type: String Mandatory: Required
[WebUI] Set Alert Text
Description
Simulate users typing text into a prompt popup.
Parameters
Param Param Type Mandatory Description
text String Required The text to type
[WebUI] Set Text
Description
Set the value of an input field, as though you type it in. It also clears the
previous value of the input field.
Parameters
84
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
text String Required The text to type in.
[WebUI] Submit
Description
If the current element is a form or an element within a form, then this will
be submitted. If this causes the current page to change, then this
method will block until the new page is loaded.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Switch To Window Url
Description
Switch to the window with a given URL.
Parameters
Param Param Type Mandatory Description
85
url String Required URL of the window to switch to.
[WebUI] Switch To Window Title
Description
Switch to the window with a given title.
Parameters
Param Param Type Mandatory Description
title String Required Title of the window to switch to.
[WebUI] Switch To Default Content
Description
Switch back to default window, after dealing with some framed elements.
[WebUI] Switch To Window Url
Description
Switch to the window with a given URL.
Parameters
Param Param Type Mandatory Description
url String Required URL of the window to switch to.
86
[WebUI] Switch To Window Title
Description
Switch to the window with a given title.
Parameters
Param Param Type Mandatory Description
title String Required Title of the window to switch to.
[WebUI] Switch To Frame
Description
Switch the current context into an iframe.
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
timeOut Integer Required
Maximum period of time (in seconds) that system will wait to return result
Returns
true if the current context is switched to the iframe.
false if the current context is NOT switched to the iframe.
87
[WebUI] Un-check
Description
Uncheck a toogle-button (check-box/radio-button).
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
[WebUI] Verify Element Not Clickable
Description
Verify if the given element is NOT clickable.
Parameters
88
Param Param Type Mandatory Description
to TestObject Required
Represent a web element.
Returns
Param Type Description
boolean
true: the element is present and NOT clickable.
false: the element is present and clickable.
[WebUI] Verify Option Selected By Index
Verify if the options at the given indices are selected.
**Parameters: **
to - TestObject (required): represent a web element range - Object (required): list of indexes of the options to be verified if
being timeout - int (requiredl): system will wait at most timeout (seconds) to
return result
Returns
true: if options with given indices are selected
false: if options with given indices are not selected
[WebUI] Verify Option Not Selected By Index
Verify if the options at the given indices are not selected
**Parameters: **
89
to - TestObject (required): represent a web element
range - Object (required): the indexes of the options to be verified if not being selected
isRegex - boolean (required): true if the label is a regular expression, false by default
timeOut - int (required): system will wait at most timeout (seconds) to return result
Returns
true: if all options at given indices are not selected false: if options at given indices are selected
[WebUI] Verify Option Not Selected By Value
Description Verify if the options with the given value are not selected.
Parameters
Param Param Type Mandatory Description
90
to TestObject Required Represent a web element.
value String Required
Value of the options to be verified if not being selected.
isRegex boolean Required
True if the label is a regular expression, false by default.
timeout int Required
System will wait at most timeout (seconds) to return the result.
Returns
Param Type Description
boolean
true: if all options with given value are NOT selected.
false: if all options with given value are selected
[WebUI] Verify Option Not Present By Label
Description Verify if the option with the given displayed text does not exist.
91
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
label String Required
Displayed texts of the options to be verified if not existing.
92
isRegex boolean Required
True if the label is a regular expression, false by default.
timeout int Required
System will wait at most timeout (seconds)to return the result.
Returns
Param Type Description
boolean
true: if options with given displayed text do NOT present.
false: if options with given displayed text present.
[WebUI] Verify Option Selected By Value
Description Verify if the options with the given value are selected.
93
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
value String Required
Value of the option to be verified if being selected.
isRegex boolean Required
True if the label is a regular expression, false by default.
timeout int Required System will wait at most timeout (seconds)to
94
return the result.
Returns
Param Type Description
boolean
true: if options with given displayed text are selected.
false: if options with given displayed text are NOT present
[WebUI] Verify Option Present By Label
Description Verify if the option with the given displayed text does exist.
95
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
label String Required
Displayed texts of the options to be verified if existing.
96
isRegex boolean Required
True if the label is a regular expression, false by default.
timeout int Required
System will wait at most timeout (seconds) to return the result.
Returns
Param Type Description
boolean
true: if options with given displayed text is present.
false: if options with given displayed text do NOT present
[WebUI] Verify Element Checked
Description Verify if the given web element is checked. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
97
timeout int Required
System will wait at most timeout (seconds) to return result
Returns
Param Type Description
boolean
Result of verification:
true if the element is checked.
false if the element is unchecked.
[WebUI] Verify Element Present
Description Verify if the given web element does present on DOM. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
timeout int Required
System will wait at most timeout (seconds) to return result
98
Returns
Param Type Description
boolean
true: the element presents. false: the element does
NOT present.
[WebUI] Verify Element Not Has Attribute
Description Verify if the web element doesn't have an attribute with the specified name. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
attributeName String Required The name of the attribute to verify.
timeout int Required
System will wait at most timeout (seconds) to return result
Returns
99
Param Type Description
boolean
true: the element doesn't the attribute with the specified name.
false: the element has the attribute with the specified name
[WebUI] Switch To Window Index
Description Switch to the window with given index. Parameters
Param Param Type Mandatory Description
index int Required
The index of the window to switch to, the index is a 0-based number.
[WebUI] Wait For Alert
Description Wait for an alert to present. Parameters
Param Param Type Mandatory Description
100
timeout int Required Timeout waiting for an alert to present.
[WebUI] Wait For Element Attribute Value
Description Wait until the given web element has an attribute with specified name and value. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
attributeName String Required The name of the attribute to wait for.
attributeValue String Required The value of the attribute to wait for.
timeout int Required
System will wait at most timeout (seconds) to return result
Returns
101
Param Type Description
boolean
true: the element has the attribute with the specified name and value in the given timeout.
false: the element doesn't have the attribute with the specified name and value in the given timeout.
[WebUI] Wait For Element Not Present
Description Wait for the given element to NOT present (appear) within the given time (in seconds). Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
timeout int Required
Maximum period of time (in seconds) that system will wait to return a result.
Returns
Param Type Description
102
boolean
true: the element is NOT present within given timeout.
false: the element is present within given timeout.
[WebUI] Wait For Element Clickable
Description Wait for the given element to be clickable within the given time (in seconds). Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a web element.
timeout int Required
System will wait at most timeout (seconds) to return result
Returns
Param Type Description
boolean
true: the element is present and clickable.
false: the element is neither present or clickable.
103
[WebUI] Accept Alert
Description
Simulate users clicking on "OK" button of an alert popup (alert, confirmation popup, prompt popup).
Values Types
While designing automation test in akaAT Studio, users usually need to
configure data for certain test steps, such as:
- Pass input parameters to a test step.
- Get the output value from a test step.
You can select from a wide range of value types supported by akaAT
Studio as showed below:
Value Type Description
Constant The data is a value that will not change over time.
Variable
The data is a value that might be changed during execution. This type of data can only be referred within the scope of the test case where it is defined.
Global Variable
The data is a value that might be changed during execution. This type of data can be referred anywhere in the project.
104
Test Data Value The data is a value coming from a test data file.
Binary The data is a binary expression.
Boolean The data is a Boolean value that can be evaluated from a Boolean expression.
Test Case The data is a test case.
Test Data The data is a test data file.
Test Object The data is a test object.
Method Call The data is a method call.
Property The data is a public property value of an object.
This list describes how to provide data for each data type:
Value Type How to provide value for the property?
String Integer Enter value directly into the Value cell.
105
Variable
Global Variable
Select preferred option from the Value drop-down list.
Boolean
Select preferred option from the Value drop-down list.
Mobile UI Keywords
[Mobile] Clear Text
Description Clear text of a mobile element. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element.
106
timeout int Required
Maximum period of time (in seconds) that system will wait to return a result.
[Mobile] Close Application
Description
Close the currently running application. [Mobile] Double Tap
doubleTap Description: Perform a double-tap action on a mobile element.
Keyword syntax: Mobile.doubleTap(testObject, timeout, flowControl)
Parameters:
o Name: testObject Description: Represent a mobile element. Parameter Type: TestObject Mandatory: Requiredz
o Name: timeout Description: System will wait at most timeout (seconds) to
return a result. Parameter Type: int Mandatory: Required
Returns: void.
Throw: StepFailedException if akaAT Studio could not find the specified
element.
[Mobile] Execute Mobile Command
executeMobileCommand Description: Execute a native mobile command.
Keyword syntax: Mobile.executeMobileCommand(command, args, flowControl)
107
Parameters:
o Name: command Description: Mobile command name. Parameter Type: String Mandatory: Required
o Name: args Description: The provided arguments for which the
command is required. Parameter Type: Map Mandatory: Required
Returns: the command's result with the Object type.
Throw: StepFailedException if akaAT Studio could not find the specified element.
[Mobile] Get Attribute
Description Get a specific attribute of a mobile element. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element.
name String Required Name of the attribute to get.
timeout int Required Maximum period of time (in seconds) that
108
system will wait to return a result.
Returns
Param Type Description
String Value of the attribute.
[Mobile] Get Current Orientation
Description Get the current screen orientation of the device. Returns
Param Type Description
String Current screen orientation (portrait, landscape).
[Mobile] Get Device Height
Description Get the device's physical height.
Returns
Param Type Description
int Device's physical height.
109
[Mobile] Get Text
Description Get the text of a mobile element. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element.
timeout int Required
Maximum period of time (in seconds) that system will wait to return the result.
[Mobile] Long Press
longPress Description: Perform a long press action on a mobile element.
Method: longPress
Keyword syntax: Mobile.longPress(testObject, timeout, flowControl)
Parameters:
o Name: testObject Description: Represent a mobile element. Parameter Type: TestObject Mandatory: Required
o Name: timeout Description: System will wait at most timeout (seconds) to
return a result. Parameter Type: int
110
Mandatory: Required
Returns: void.
Throw: StepFailedException if akaAT Studio could not find the specified element.
[Mobile] Send Keys
Description Simulates keystroke events on the specified element, as though you typed the value key-by-key. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element.
strKeys String Required The combination of keys to type.
[Mobile] Start Application
Description Start up an application. Parameters
Param Param Type Mandatory Description
appFile String Required Absolute path or Relative path (since 5.0) of the
111
application installation file.
uninstallAfterCloseApp boolean Required
true if uninstalling the application automatically after run.
[Mobile] Swipe
Description Simulate swiping fingers on the mobile device. Parameters
Param Param Type
Mandatory Description Note
startX int Required Starting x position
startY int Required Starting y position
endX int Required Ending x position
Since 5.1.0.2: Relative x position of startX
endY int Required Ending y position
Since 5.1.0.2 Relative y
112
position of start Y
[Mobile] Switch To Landscape
Description Switch the current device's mode to landscape mode. [Mobile] Switch To Portrait
Description Switch the current device's mode to portrait mode. [Mobile] Tap
Description Tap on a mobile element. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element.
timeout int Required
Maximum period of time (in seconds) that system will wait to return result.
[Mobile] Tap And Hold
Description Tap and hold on a mobile element for a duration Parameters
113
Parameter Parameter Type
Mandatory Description
to TestObject Required Represent a mobile element.
duration Number Required
Duration (in seconds) that the tap is held on the element, if set to <= 0 then will use default duration.
timeout int Required
System will wait at most timeout (seconds) to return the result.
[Mobile] Unlock Screen
Description Unlock the device's screen. [Mobile] Verify Image Present
verifyImagePresent Description: Verify the given image that presents on the device screen or not.
Keyword syntax: verifyImagePresent(imageFilePath)
Parameter: imageFilePath
o Description: Absolute path of the image o Parameter Type: String o Mandatory: Required
114
Return: true if the image presents. Otherwise, false.
[Mobile] Verify Element Checked
Description Verify if a mobile element is checked. Parameters
Parameter Parameter Type
Mandatory Description
to TestObject Required Represent a mobile element
timeout int Required
System will wait at most timeout (seconds) to return result
Returns true if the element is checked; otherwise, false [Mobile] Verify Is Landscape Description Verify if the current device is in landscape mode. Returns
Param Type Description
Boolean true, if the device is in landscape mode; otherwise, false.
115
[Mobile] Verify Element Attribute Value
Description Verify if the element has an attribute with the specified name and value Parameters
Parameter Parameter Type
Mandatory Description
to TestObject Required Represent a mobile element.
attributeName String Required The value of the attribute to verify.
attributeValue String Required The value of the attribute to verify.
timeout int Required
System will wait at most timeout (seconds) to return a result.
Returns true if the element has the attribute with the specified name and value; otherwise, false
116
[Mobile] Verify Element Not Exist
Description Verify if a mobile element is not present. Parameters
Parameter Parameter Type
Mandatory Description
to TestObject Required Represent a mobile element
Returns true if the element is NOT present; otherwise,** false**
[Mobile] Verify Element Not Visible Description Verify if a mobile element is NOT visible. Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element
timeout int Required
System will wait at most timeout (seconds) to return a result
117
Returns true if the element is NOT visible; otherwise,** false**
[Mobile] Verify Element Not Has Attribute
Description Verify if the element has an attribute with the specified name
Parameters
Param Param Type Mandatory Description
to TestObject Required Represent a mobile element.
attirbuteName String Required The name of the attribute to verify.
timeout int Required
System will wait at most timeout (seconds) to return result.
Returns true if the element doesn't have the attribute with the specified name; otherwise, false
118
[Mobile] Verify Element Not Checked
Description
Verify if a mobile element is not checked.
Parameters
Parameter Parameter Type
Mandatory Description
to TestObject required represent a mobile element
timeout int required
system will wait at most timeout (seconds) to return a result
Returns true if the element is NOT checked; otherwise, false
Windows Keywords
[Windows] Click
click
Description: Perform a left-clicking action on the Web element found by
using the locator value of the given Windows object.
[Windows] Close Desktop Application
closeApplication
Description: Trigger a closing event of the running application on the
Windows System. This action is similar to pressing ALT + F4 and does not
force the application to close. If there is a pop-up confirmation, you need to
take some extra steps to actually close it.
Keyword name: closeApplication
119
Keyword syntax: Windows.closeApplication() [Windows] Double-click doubleClick Description: Perform a double-clicking action on the Web element found by using the locator value of the given Windows object.
Keyword name: doubleClick Keyword syntax: Windows.doubleClick(windowsObject) Parameter: windowsObject
o Description: An object describing the locator and locator strategy to find a Windows element.
o Parameter Type: WindowsTestObject o Mandatory: Required
[Windows] Get Text
getText Description: Get the text content of the Web element found by using the locator value of the given Windows object. This action appends the given text on the element without clearing its current text. Keyword name: getText
Keyword syntax: Windows.getText(windowsObject) Parameter: windowsObject
o Description: An object describing the locator and locator strategy to find a Windows element.
o Parameter Type: WindowsTestObject o Mandatory: Required
Return value: o Description: The text content of the found Windows element
Type: String
[Windows] Right-click
rightClick Description: Perform a right-clicking action on the Web element found by using the locator value of the given Windows object.
120
Keyword name: rightClick Keyword syntax: Windows.rightClick(windowsObject) Parameter: windowsObject
o Description: An object describing the locator and locator strategy to find a Windows element.
o Parameter Type: WindowsTestObject o Mandatory: Required
[Windows] Send Keys
Keyword sendKeys Description: Simulate keystroke events on the specified element by pressing a key or a combination of keys.
Keyword name: sendKeys Keyword syntax: sendKeys(windowsObject,strKeys) Parameters:
o Name: windowsObject Description: An object that describes the locator and
locator strategy to find Windows Element. Parameter Type: WindowsTestObject Mandatory: Required
o Name: strKeys
Description: A combination of keys to press. Parameter Type: String Mandatory: Required
[Windows] Set Text
setText Description: Perform a text setting action on the Web element found by using the locator value of the given Windows object.
Keyword name: setText Keyword syntax: Windows.setText(windowsObject,text) Parameters:
o Name: windowsObject.
121
Description: An object describing the locator and locator strategy to find a Windows element.
Parameter Type: WindowsTestObject. Mandatory: Required.
o Name: text
Description: The text content to set on the element Parameter Type: String Mandatory: Required
[Windows] Start Desktop Application
startApplication Description: Start the Windows driver and the Windows application with the given absolute path.
Keyword name: startApplication Keyword syntax: Windows.startApplication(appFile) Parameter: appFile
o Description: The absolute path to the Windows Executable File (*.exe) of the test machine.
o Parameter Type: String o Mandatory: Required
[Windows] Switch to Window by Title
switchToWindowTitle Description: Find and attach the opening application window that describes by the given windows object to the working WindowsDriver session on the current desktop by the given title.
This keyword should be used when:
o The main application window has been closed and replaced by another window.
o The application has multiple working windows. We can switch among these windows.
o We already have an opened application and need to switch to without reopening requires
Keyword name: switchToWindowTitle
122
Keyword syntax: Windows.switchToWindowTitle(windowTitle, flowControl)
Parameters:
o Name: windowTitle Description: Title of the opening application windows. Full
text or partial text is acceptable. Parameter Type: String Mandatory: Required
Returns: The WindowsDriver after akaAT Studio switches successfully.
Throw: StepFailedException if akaAT Studio could not find any window that matches with the given windows object.
[Windows] Switch to Window by UIObject
switchToWindow Description: Find and attach the opening application window that describes by the given windows object to the working WindowsDriver session on the current desktop.
This keyword should be used when:
o The main application window has been closed and replaced by another window.
o The application has multiple working windows. We can switch among these windows.
o We already have an opened application and need to switch to without reopening requires
Keyword name: switchToWindow
Keyword syntax: Windows.switchToWindow(windowsObject, flowControl)
Parameters:
o Name: windowsObject Description: An object that describes locator and locator
strategy to find the opening application. Parameter Type: WindowsTestObject. Mandatory: Required.
123
Returns: The WindowsDriver after akaAT Studio switches successfully.
Throw: StepFailedException if akaAT Studio could not find any window
that matches with the given windows object.
11.Execution
11.1. Test Suite
A test suite is a collection of multiple different or duplicate test cases.
Create a new Test Suite
To create a new Test Suite, do as follows:
1. From the explorer view, select Test Suites > New > Test Suite
2. Fill in the name of the test suite
3. Click OK when you are done.
4. From test suite tab, click Add test case to add the test case to test suite.
5. List of test cases will display as below, select respectively test case.
124
6. Click OK when you are done.
11.2. Executing Tests on Multiple Test Cases in Parallel
Notice that if user want to run multiple test cases in parallel, remember to
select Concurrent Instance number that fits for number of test cases which
want to run
Click on check box next to test case want to test
Note: Data binding
You can enable this feature to obtain old variable binding behaviors. Old
test data continue to be read as string to ensure that we don't break
125
existing test cases.
In the above example, we create a test suite and a test case with
variables.
Variable binding for Test Data with option bind to test case as string
enabled
When you added the test case to test suite
Click on Data binding, list of test case variable binding will display as
below. Please input respectively value for the variable.
126
Then click OK and try to run the test suite.
127
11.3. Reports and Execution Log
Test Suite Reports
Here is an example output of the test suite
128
View Execution Log
From then, user can also view in Progress Bar like this:
Status PASSED have green color and FAILED have red color.
There are 3 test cases so the execution log will display in order all of test
cases and its status and execution time also.