Katalon
Note
This plugin is available only in the Ultimate version of Squash.
This plugin provides functions that handle Katalon tests. It has been validated with Katalon 8.2.0 and should work with any recent version of Katalon.
It can be used directly in a workflow, or indirectly via generators (such as those providing access to test case managers).
A working Katalon installation must be available in the targeted execution environments.
The functions have a katalon
category prefix.
Functions
katalon/katalon@v1
Run a Katalon test suite collection or test suite.
It has the following mandatory inputs:
- For executing a test suite collection:
project
andtest-suite-collection-path
. - For executing a test suite:
project
,test-suite-path
, andbrowser-type
.
Environment variables
The following environment variables must be defined in the execution environment:
KATALON_API_KEY
= Katalon API license key, for example:123a4567-123a-1ab2-1234-1234567890ab
.KATALON_ORG_ID
= Organisation ID at Katalon, for example:123456
.
Additionally, when executing a test suite without specifying the browser-type
input,
the following environment variable must also be defined:
KATALON_BROWSER_TYPE
= Default browser type, for example:Web Service
.
Inputs
The function has the following inputs:
-
project
(required)Specify the project location (include
.prj
file). The path from the root folder of the workspace must be used in this case. (-projectPath={path}
) -
test-suite-collection-path
(optional)Specify the test suite collection file (without extension
.tsc
). The relative path must be used in this case (root being project folder). (-testSuiteCollectionPath={path}
) -
test-suite-path
(optional)Specify the test suite file (without extension
.ts
). The relative path must be used in this case (root being project folder). (-testSuitePath={path}
) -
browser-type
(optional)Specify the browser type used for test suite execution. (
-browserType={browser}
) (Web Service
is used for Web Service test execution.)- Possible values for
{browser}
for Linux:Web Service
Firefox
Chrome
Remote
- Possible values for
{browser}
for other OSes:Web Service
Firefox
Chrome
IE
Edge
Edge (Chromium)
Safari
Remote
Android
iOS
You can use this option in a test suite collection execution. The specified browser is used for all test suites in that collection.
- Possible values for
-
execution-profile
(optional)Specify the execution profile that a test suite executes with. (
-executionProfile={profile_name}
)
You can use this option in a test suite collection execution. The specified execution profile is applied to all test suites in that collection. -
retry
(optional)Specify the number of times running test cases in the test suite, until the test suite passes successfully. (
-retry={number of retry times}
)Set
{number of retry times}
to 0 for no retry.By default, the
retry
input is set to 0. -
status-delay
(optional)System updates execution status of the test suite after the delay period (in seconds) specified. (
-statusDelay={seconds}
) -
send-mail
(optional)Specify the e-mail address for receiving report files. If the e-mail address was not specified, the report files are not to be sent. (
-sendMail={e-mail address}
) -
report-folder
(optional)Specify the destination folder for saving report files. You can use an absolute path or relative path (root being project folder). (
-reportFolder={path}
)
By default, thereport-folder
input is set toKatalon_reports
. -
report-file-name
(optional)Specify the name for report files (
.html
,.csv
,.log
). (-reportFileName={name}
)
If not provided, the system uses the namereport
(report.html
,report.csv
,report.log
). -
extra-options
(optional)All other additional options.
Reports
The function generates the following reports:
-
JUnit_Report.xml
A Surefire report (XML).
Generated whentest-suite-collection-path
ortest-suite-path
is specified.The Surefire report has the
application/vnd.opentestfactory.katalon-surefire+xml
content type. -
{report-folder}.tar
A TAR archive.
Contains all files present in the reports folder.Katalon_reports.tar
by default or{report-folder}.tar
ifreport-folder
is specified.Generated when
test-suite-collection-path
ortest-suite-path
is specified. -
{report-file-name}.html
Report formatted in HTML.
report.html
by default or{report-file-name}.html
ifreport-file-name
is specified.Generated when
test-suite-path
is specified. -
{report-file-name}.csv
Report formatted in CSV.
report.csv
by default or{report-file-name}.csv
ifreport-file-name
is specified.Generated when
test-suite-path
is specified.
Examples
Execute a test suite collection in a project with the mandatory inputs:
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite collection file (without extension `.tsc`)
test-suite-collection-path: path/to/test_suite_collection_file
Execute a test suite collection in a project with the other available inputs:
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite collection file (without extension `.tsc`)
test-suite-collection-path: path/to/test_suite_collection_file
# Web Service|Firefox|Chrome|Remote|IE|Edge|Edge (Chromium)|Safari|Android|iOS
browser-type: Edge (Chromium)
# Execution profile that a test suite or a test suite collection executes with
execution-profile: profile42
# number of retry times; 0 for no retry
retry: 1
# number in seconds
status-delay: 0
# e-mail address for receiving report files
send-mail: nobody@example.com
# Destination folder for saving report files
report-folder: path/to/report_folder
# Name for report files (`.html`, `.csv`, `.log`)
report-file-name: my_report
# (all other options)
extra-options: additional_options
Execute a test suite in a project with the mandatory inputs:
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite file (without extension `.ts`)
test-suite-path: path/to/test_suite_file
# Web Service|Firefox|Chrome|Remote|IE|Edge|Edge (Chromium)|Safari|Android|iOS
browser-type: Web Service
Execute a test suite in a project with the other available inputs:
- uses: katalon/katalon@v1
with:
# Project location (include `.prj` file), from the root folder of the workspace
project: path/to/project.prj
# Test suite file (without extension `.ts`)
test-suite-path: path/to/test_suite_file
# Web Service|Firefox|Chrome|Remote|IE|Edge|Edge (Chromium)|Safari|Android|iOS
browser-type: iOS
# Execution profile that a test suite or a test suite collection executes with
execution-profile: acceptance
# number of retry times; 0 for no retry
retry: 0
# (number in seconds)
status-delay: 12
# e-mail address for receiving report files
send-mail: me@example.com
# Destination folder for saving report files
report-folder: path/to/report_folder
# Name for report files (`.html`, `.csv`, `.log`)
report-file-name: summary
# (all other options)
extra-options: additional_options
katalon/execute@v1
An execute
function for use by generators.
Info
The result of each executed Squash TM test case is calculated by taking into account
the individual results of each test case belonging to the test suite collection or
to the test suite, of the Katalon project file (.prj
) processed:
- If at least one test has an Error status (in case of a technical issue), the status of the execution will be Blocked.
- If at least one test fails functionally and none of the other has an Error status, the status of the execution will be Failed.
- If all tests succeed, the status of the execution will be Success.
Environment variables
The following environment variables must be defined in the execution environment:
KATALON_API_KEY
= Katalon API license key, for example:123a4567-123a-1ab2-1234-1234567890ab
.KATALON_ORG_ID
= Organisation ID at Katalon, for example:123456
.
Additionally, when executing a test suite without specifying the browser-type
input,
the following environment variable must also be defined:
KATALON_BROWSER_TYPE
= Default browser type, for example:Web Service
.
Finally, the following environment variable can also optionally be defined:
KATALON_EXECUTION_PROFILE
= Execution profile to be used, for example: "production".
Test Reference format
The test reference format used by katalon/execute@v1
is as follows:
{project}/{prjfile}#{collection}#{suite}#[{testcase}]
With:
{project}
(required): name of the project on the source code repository.{prjfile}
(required): path to the name of the Katalon project file (with its.prj
extension), from the root of the project.{collection}
(exclusive): relative path from the Katalon project folder to the name of the test suite collection. This parameter is exclusive with respect to{suite}
.{suite}
(exclusive): relative path from the Katalon project folder to the name of the test suite. This parameter is exclusive with respect to{collection}
.{testcase}
(optional): relative path from the Katalon project folder to the name of the specific test case to be parsed for which you want to obtain a particular result.
Automated test reference and execution
The relative path from the Katalon project folder to the name of the specific test case
precision ({testcase}
in the test reference) has no impact on the execution, but only on test
result determination.
So, even when defining the specific level of the specific test case, all test cases defined in the test suite collection or in the test suite will be executed (this means, for example, that if several Squash TM test cases point toward the same test suite collection or toward the same test suite, but toward different test cases, then all the test cases will be executed several times).
The test reports include the traces of all executed requests. But, only the Error / Failed / Success status corresponding to the specific test case is used to determinate the test case result.
Exclusive choice of test suite collection or test suite
The {collection}
and {suite}
sections are mutually exclusive: either the test suite
collection or the test suite must be populated, but not both.
In the end, the test reference must contain three characters #
.
Inputs
The function has the following inputs:
-
test
(required)The test reference.
Reports
The function generates the following reports:
-
JUnit_Report.xml
A Surefire report (XML).
Generated when a test suite collection or test suite is executed.The Surefire report has the
application/vnd.opentestfactory.katalon-surefire+xml
content type. -
Katalon_reports.tar
A TAR archive.
Contains all files present in the reports folder.Generated when a test suite collection or test suite is executed.
-
report.html
Report formatted in HTML.
Generated when a test suite is executed. -
report.csv
Report formatted in CSV.
Generated when a test suite is executed.
Examples
Execute a test suite collection in the project.prj
project:
- uses: katalon/execute@v1
with:
test: repo/path/to/project.prj#relative_path/to/testSuiteCollection##relative_path/to/testCase
Execute a test suite in the project.prj
project:
- uses: katalon/execute@v1
with:
test: repo/path/to/project.prj##relative_path/to/testSuite#relative_path/to/testCase
katalon/params@v1
A 'params' function for use by generators.
Order of priority in case of variable homonymy
The same variable can be defined in various places. In this case, when a test is run with the
katalon/execute@v1
action and this test uses the variable, the order of precedence is (in decreasing order):
- Test parameter defined by the
katalon/params@v1
action, - Global parameter defined by the
katalon/params@v1
action, - Global variable coming from the profile defined by the
KATALON_EXECUTION_PROFILE
environment variable, - Global variable coming from the default profile.
Inputs
The function has the following inputs:
-
data
(required)The data to use for the automated test.
-
format
(required)The format to use for the automated test data.
Example
- uses: katalon/params@v1
with:
data:
global:
key1: value1
key2: value2
test:
key1: value3
key3: value4
format: format
format
must so far be SQUASHTM_FORMAT (tm.squashtest.org/params@v1
).
data
can have two keys:
global
for defining global parameters.test
for defining test parameters.
Using with inception
Please refer to "Inception" for more information on what is inception.
Preload the inception environment with at least the tests execution report data.
Example
metadata:
name: Katalon Inception
resources:
files:
- report1
jobs:
my_specific_job:
runs-on: inception
- uses: actions/prepare-inception@v1
with:
JUnit_Report.xml: ${{ resources.files.report1 }}
- uses: katalon/execute@v1
with:
test: katalonProject/src/project.prj
You can use the following command to run it:
opentf-ctl \
run workflow my_workflow.yaml \
-f report1=output_1.xml
opentf-ctl ^
run workflow my_workflow.yaml ^
-f report1=output_1.xml
opentf-ctl `
run workflow my_workflow.yaml `
-f report1=output_1.xml
Configuration
Hooks can be defined for the provided functions. This can be done in workflow definitions or at the orchestrator level so that they apply to all your workflows.
Configuration at the orchestrator level is done by setting the
KATALON_PROVIDER_HOOKS
environment variable or by adding the hook definitions in the /app/conf/katalon.yaml
service configuration file.
Please refer to "Hooks for plugin providers" in OpenTestFactory documentation for more information.