Glossary
<click>
Added version: V.1.0, V.2.0
Web UI, Mobile native, Mobile browser
Description
Command to perform click command.
Parameters
required: locator, comment
optional: method, highlight, threshold, condition, locatorStartegy
Example:
<click comment="Your comment"
locator="name.locatorId"/>
<click comment="Click on 'What We Do' button" method="js"
locator="(.//span[text()= 'Testlum'])[1]" locatorStrategy="xpath" />
<input>
added version V.1.0, V.2.0
Web UI, Mobile, Mobile Browser
Description
Command to insert a value into a field.
Parameters
required: comment, locator, value
optional: highlight, threshold, condition
Example:
<input comment="Your comment"
locator="name.locatorId"
value="New"/>
<assert>
added version V.1.0, V.2.0
Web UI, Mobile, Mobile Browser
Description
Command to check whether data is entered or element is displayed on the page.
Parameters
choose: attribute, title
required: comment, locator, name, content
optional: threshold, condition
Example:
<assert comment="Your comment">
<attribute comment="Your comment" name="type" locator="file.locatorId">
<content>submit</content>
</attribute>
</assert>
<clear>
added version V.1.0, V.2.0
Web UI, Mobile, Mobile Browser
Description
Command to clear data from field.
Parameters
required: comment, locator, highlight
optional: threshold, condition
Example:
<clear comment="Your comment"
locator="name.locatorId" highlight="true"/>
<navigate>
added version V.1.0, V.2.0
Web UI, Mobile browser, Mobile
Description
Command to navigate to a specific direction, previous direction or reload the page.
Parameters
required: comment, command
optional: path, threshold, condition
Example:
<navigate comment="Your comment" command="to" path="Your settings"/>
<navigate comment="Your comment" command="reload"/>
<navigate comment="Your comment" command="back"/>
<image>
added version V.2.0
WEB UI, Mobile browser, Mobile
Description
Command to take a screenshot of the current page and compare it to the expected result.
Parameters
choose: compareWithFullScreen, compareWith
required: comment, file, locatorId (if compareWith
is chosen)
optional: threshold, condition, highlightDifference
Example:
<image comment="Compare full screen" file="compare1.png" highlightDifference="true">
<compareWithFullScreen/>
</image>
<image comment="Your image" file="name.png" highlightDifference="true">
<compareWith locator="locatorId.name"/>
</image>
<scroll>
added version V.1.0, V.2.0
Web UI, Mobile browser, Mobile
Description
Command to perform scroll action.
Parameters
required: comment, type, value
optional: locator, direction, measure, threshold, condition
Example:
<scroll comment="Your comment"
value="200" direction="up"
measure="percent" type="page"/>
<scrollTo>
added version V.1.0, V.2.0
Web UI, Mobile browser, Mobile
Description
Command to perform scroll to element action.
Parameters
required: comment, locator
optional: threshold, condition
Example:
<scrollTo comment="Your comment"
locator="locatorId.name"/>
<dropDown>
added version V.1.0, V.2.0
Web UI, Mobile browser
Description
Command to interact with drop-down menu.
Parameters
choose: oneValue, allValues
required: comment, locator, type (by value if oneValue selected)
optional: threshold, condition
Example:
<dropDown comment="Your comment"
locator="locatorId.name">
<oneValue type="select" by="value" value="CA"/>
</dropDown>
<javascript>
added version V.1.0, V.2.0
Web UI, Mobile browser
Description
Command to execute user's custom javascript commands.
Parameters
required: comment, file
optional: threshold, condition
Example
<javascript comment="Your comment" file="function.js"/>
<closeTab>
added version V.2.0
Web UI, Mobile browser
Description
Command to close current tab.
Parameters
required: comment
optional: tabIndex, threshold, condition
Example
<closeTab comment="Your comment" tabIndex="Your index"/>
<hovers>
added version V.2.0
Web UI, Mobile browser
Description
Command to perform hover action.
Parameters
required: comment, locator
optional: threshold, condition, moveToEmptySpace
Example
<hovers comment="Your comment">
<hover comment="Your comment" locator="locatorId.name"/>
<hover comment="Your comment" locator="locatorId.name"/>
</hovers>
<switchToFrame>
added version V.2.0
Web UI, Mobile browser
Description
Command to switch between frames.
Parameters
choose: all UI commands
required: comment, locator
optional: threshold, condition
Example
<switchToFrame comment="Your comment" locator="fileName.locatorId">
<.../>
</switchToFrame>
<hotKey>
added version V.2.0
Web UI
Description
Command to use hotkey command.
Parameters
choose: copy, paste, cut, highlight, tab, enter, escape, space, backSpace
required: comment
optional: threshold, condition, locator
Example
<hotKey comment="Your comment">
<tab comment="Press tab "/>
</hotKey>
<wait>
added version V.1.0
General
Description
Command that pauses the passage of the scenario.
required: comment, time
optional: unit, threshold, condition
Example
<wait comment="Your comment" time="your time"/>
<dragAndDrop>
added version V.2.0
Web UI, Mobile
Description
Command to perform drag and drop action.
Parameters
choose: fromLocator, filePath
required: comment, toLocator
optional: threshold, condition
Example
<dragAndDrop comment="Your comment" toLocator="locatorId.name">
<filePath>Your path.jpg</filePath>
</dragAndDrop>
<dragAndDrop comment="Your comment" toLocator="locatorId.name">
<fromLocator>name.locatorId</fromLocator>
</dragAndDrop>
<refresh>
added version V.2.0
Mobile
Description
Command to refresh the app. It implements "swipe to refresh" functionality.
required: comment
optional: threshold, condition
Example
<refresh comment="Your comment"/>
<swipe>
added version V.2.0
Mobile
Description
Command to perform swipe action.
Parameters
required: comment, type, direction
optional: percent, condition, quantity locator, threshold
Example
<swipe comment="Your comment"
direction="right"
type="element"
percent="30"
locator="locatorId.name"/>
<webView>
added version V.2.0
Mobile
Description
Command to switch to webView in native app.
Parameters
required: comment
optional: threshold, condition
Example
<webView comment="Your comment">
<wait comment="Your comment" time="3"/>
<input comment="Your comment"
locator="locatorId.name"
value="test"/>
</webView>
<var>
added version V.1.0,V.2.0
WEB UI, General
Description
Command to create variable.
Parameters
choose: path, file, constant, expression, sql, generate, dom, element, cookie, url
required: comment, name
optional: threshold, condition
Example
<var comment="Created token var" name="TOKEN">
<path value="$.[0].content.[0].token"/>
</var>
<http>
added version V.1.0,V.2.0
General
Description
The HTTP request structure has all the basic features of API testing tools.
Parameters
choose:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
- HEAD
- TRACE
required: comment, alias
optional: threshold, condition
Example
<http comment="Your comment" alias="API"> - action description + alias API
<post endpoint="/name/v1/name"> - indication of the type of request + used endpoint
<response code="200" file="expected_1.json"/> - response code + expected result
<body>
<from file="request_1.json"/> - transfer of the request body
</body>
</post>
</http>
<auth>
added version V.1.0,V.2.0
WEB UI
Description
Allows you to register in the test script.
Parameters
required: comment, apiAlias, credentials, loginEndpoint
optional: threshold, condition
Example
<auth comment="" apiAlias="SHOPIZER" credentials="jwt_user.json" loginEndpoint="/api/v1/name/name">
<http comment="Your comment" alias="SHOPIZER">
<get endpoint="/api/v1/name/name">
<response code="200" file="expected_3.json"/>
</get>
</http>
</auth>
<websocket>
added version V.1.0,V.2.0
WEB UI
Description
Allows you to test with and without a stomp.
Parameters
Required:
- comment
- alias
- disconnect
Choice:
Stomp:
Subscribe:
- Comment
- Topic
Send:
Choice:
- Message
- File
Receive(may be skipped)
Comment
Disconnect
Receive:
Choice:
- Message
- File
Comment
Topic
Count
timeoutMillis
Choice:
- Send
Example
<websocket comment="Your comment" alias="TESTER" disconnect="true">
<stomp>
<receive comment="Your comment" topic="/topic/test">
<message>[]</message>
</receive>
<send comment="Your commentt" endpoint="/app/test">
<file>body_1.json</file>
</send>
<receive comment="Your comment" topic="/topic/test" count="2" timeoutMillis="500">
<file>expected_13.json</file>
</receive>
<receive comment="Your comment" topic="/topic/test">
<message>[]</message>
</receive>
</stomp>
</websocket>
<websocket comment="Your comment" alias="Name" disconnect="false">
<receive comment="Your comment" count="1" timeoutMillis="1000">
<message>
[{
"connectionID": "p(any)",
"event" : "systemStatus",
"status" : "online",
"version" : "your version"
}]
</message>
</receive>
<receive comment="Your comment">
<message>[]</message>
</receive>
<send comment="Send 'ping' message">
<message>
{
"event": "ping",
"reqid": 42
}
</message>
</send>
<receive comment="Your comment" count="1" timeoutMillis="1000">
<message>
[{
"event": "pong",
"reqid": 42
}]
</message>
</receive>
<receive comment="Your comment">
<message>[]</message>
</receive>
</websocket>
<postgres>
added version V.1.0,V.2.0
WEB UI
Description
Connecting to a database and modifying it with a test.
Parameters
Required:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<postgres comment="Execute mixed postgres commands (SELECT/INSERT/DELETE).
Expect to see content from expected_2"
alias="playground_db"
file="expected_3.json">
<query>SELECT * FROM t_user</query>
<query>INSERT INTO t_user (id, username, email, email_verified, first_name, last_name, salt, password,
is_active, last_login, locked, locked_cause, created_at, created_by,deleted_at, deleted_by)
VALUES (9, 'testuser9', 'email9@gmail.com', true, 'testuser9', 'testuser9', '',
true, current_date + 1, false, null, '2021-09-29 18:06:16.000000', null, null, null);
</query>
<query>SELECT id FROM t_user WHERE id=9</query>
<query>DELETE FROM t_user WHERE 1=1</query>
<query>SELECT * FROM t_user</query>
</postgres>
<clickhouse>
added version V.1.0,V.2.0
WEB UI
Description
Allows you to work with mixed queries in the test.
Parameters
Required params:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<clickhouse comment="Execute mixed postgres commands (SELECT/INSERT/DELETE).
Expect to see content from expected_2"
alias="your alias"
file="expected_2.json">
<query>SELECT * FROM t_user ORDER BY id</query>
<query> INSERT INTO t_user (*)
VALUES (9, 'testuser9', 'email9@gmail.com', 1, 'testuser9', 'testuser9',
1, null, 0, null, '2021-09-29 18:06:16.000000', null, null, null)
</query>
<query>SELECT id FROM t_user WHERE id=9</query>
<query>ALTER TABLE t_user DELETE WHERE 1=1</query>
<query>SELECT * FROM t_user ORDER BY id</query>
</clickhouse>
<mysql>
added version V.1.0,V.2.0
WEB UI
Description
Writing tests with an open source relational database management system (RDBMS).
Parameters
Required params:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<mysql comment="Execute mixed mysql commands (SELECT/INSERT/DELETE).
Expect to see content from expected_2"
alias="playground_db"
file="expected_3.json">
<query>SELECT * FROM news</query>
<query>INSERT INTO news
(id, title, text, logo, slug, is_published, created_at, updated_at, published_at)
VALUES
(11,'title11', 'text11', 'logo11', 'slug11', true, '2020-05-22 09:30:00',
'2020-05-22 09:30:00', '2020-05-22 09:30:00')
</query>
<query>SELECT id FROM news WHERE id=11</query>
<query>DELETE FROM news WHERE 1=1</query>
<query>SELECT * FROM news</query>
</mysql>
<oracle>
added version V.1.0,V.2.0
WEB UI
Description
Writing texts with the help of the database.
Parameters
Required params:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<oracle comment="Execute mixed oracle commands (SELECT/INSERT/DELETE). Expect to see content from expected_2"
alias="oracle-one"
file="expected_2.json">
<query>SELECT * FROM news</query>
<query>INSERT INTO news
(id, title, text, logo, slug, is_published, created_at, updated_at, published_at)
VALUES
(11,'title11', 'text11', 'logo11', 'slug11', 1, TO_TIMESTAMP('2020-05-22 09:30:00', 'YYYY-MM-DD
HH24:MI:SS'),
TO_TIMESTAMP('2020-05-22 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), TO_TIMESTAMP('2020-05-22 09:30:00',
'YYYY-MM-DD HH24:MI:SS'))
</query>
<query>SELECT id FROM news WHERE id=11</query>
<query>DELETE FROM news WHERE 1=1</query>
<query>SELECT * FROM news</query>
</oracle>
<redis>
added version V.1.0,V.2.0
WEB UI
Description
In tests, you can use the database repository.
Parameters
Required params:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<redis comment="Execute the command as get in redis by key. Expect to see content from step_2"
alias="redis"
file="expected_2.json">
<query>GET # jsonDataFirst</query>
<query>GET # jsonDataSecond</query>
<query>GET # jsonDataThird</query>
<query>GET # jsonDataFourth</query>
<query>GET # jsonDataFifth</query>
<query>GET # jsonDataSixth</query>
<query>GET # simpleDataFirst</query>
<query>GET # simpleDataSecond</query>
<query>GET # simpleDataThird</query>
</redis>
<mongo>
added version V.1.0,V.2.0
WEB UI
Description
Database can be used in tests.
Parameters
Required params:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<mongo comment="Execute mixed mongodb commands (insert/find/update/delete/find all)"
alias="database_one"
file="expected_2.json">
<query>{insert : 'test', documents : [{_id: 1, item: 'pencil', qty: 50, type: 'no.2'}, { _id: 12, item: 'book',
qty: 40}]}
</query>
<query>{find: 'test', filter: {'item': 'pencil'}}</query>
<query>{update: 'test', updates: [{q: {_id: 12}, u: {qty: 35}}]}</query>
<query>{delete: 'test', deletes: [{q: {_id: 1}, limit: 1}]}</query>
<query>{find: 'test'}</query>
</mongo>
<s3>
added version V.1.0,V.2.0
WEB UI
Description
Cloud storage can be used in tests.
Parameters
Required params:
- Choice:
- upload
- download
Required params:
- comment
- alias
- key
Example
<s3 comment="Compare json file from bucket with expected file"
alias="bucketone"
key="/com/knubisoft/integration-testing/expected_2.json">
<download>expected_2.json</download>
</s3>
<s3 comment="Upload jpeg file to the bucket"
alias="bucketone"
key="/com/knubisoft/integration-testing/expected_4.jpeg">
<upload>expected_4.jpeg</upload>
</s3>
<sqs>
added version V.1.0,V.2.0
WEB UI
Description
Information storage service can be used in tests.
Parameters
Required params:
- Choice:
- Send – string
- Receive – string
Required params: comment, alias, queue
Example
<sqs comment="Compare message from empty queue inline mode"
alias="queue_one"
queue="queue">
<receive>null</receive>
</sqs>
<kafka>
added version V.1.0,V.2.0
WEB UI
Description
Can be used in tests.
Parameters
Required params:
- Choice:
- Send:
Choice:
1. Value 2. file
Optional params:
1. Key 2. Headers:
1. Name – string name of the header 2. Value – value o the header
2. Receive
Choice:
1. Value 2. file
Required params:
1. topic
Optional params:
1. timeoutMillis int (1500 default) 2. Headers – boolean (true default):
Required params: comment. alias
Example
<kafka comment="Receive then send and receive 2 time"
alias="kafka-one">
<receive topic="queue">
<file>expected_2.json</file>
</receive>
<send topic="queue">
<file>body_1.json</file>
</send>
<receive topic="queue">
<value>
[ {
"key" : null,
"value" : "{\n \"squadName\": \"Super hero squad\",\n \"homeTown\": \"Metro City\",\n \"formed\": 2016,\n \"secretBase\": \"Super tower\",\n \"active\": true\n}",
"correlationId" : null,
"headers" : { }
} ]
</value>
</receive>
</kafka>
<rabbit>
added version V.1.0,V.2.0
WEB UI
Description
Replicable middleware focused on handling messages in a test.
Parameters
Required params: comment, alias
Choice:
Send: Choice:
Body
File Required params:
routingKey Optional param:
Headers:
- Name
- value
Exchange
correlationId
Receive
Choice:
- message
- file Required params:
- queue Optional param:
- prefetchCount
- imeoutMillis
- headers – boolean
Example
<rabbit comment="Receive then send and receive 2 time"
alias="rabbit-one">
<receive queue="queue">
<file>expected_2.json</file>
</receive>
<send routingKey="queue">
<file>body_1.json</file>
</send>
<receive queue="queue">
<message>
[ {
"message" : "{\n \"squadName\": \"Super hero squad\",\n \"homeTown\": \"Metro City\",\n \"formed\":
2016,\n \"secretBase\": \"Super tower\",\n \"active\": true\n}",
"correlationId" : "null",
"headers" : { }
} ]
</message>
</receive>
</rabbit>
<dynamo>
added version V.1.0,V.2.0
WEB UI
Description
Visual programming for open source test.
Parameters
Required params:
- comment
- alias
- file – file with expected result
Required filed:
- Query (unlimited usage min 1)
Example
<dynamo comment="Execute mixed postgres commands (SELECT/INSERT/DELETE/UPDATE)"
file="expected_2.json"
alias="dynamo_one">
<query>INSERT INTO playground value {'year' : 11 , 'title' : 'Strassenbande-11',
'Map': {'key': {'key2': ['hoge', 100]}}, 'List': ['hoge', 100]}
</query>
<query>DELETE FROM playground WHERE year = 2 AND title = 'Strassenbande-2'</query>
<query>UPDATE playground SET Albums={'Platin':[2020, 2018]} WHERE year = 1 AND title = 'Strassenbande-1'</query>
<query>SELECT * FROM playground</query>
</dynamo>
<elasticsearch>
added version V.1.0,V.2.0
WEB UI
Description
Search engine with json rest api using Lucene in test.
Parameters
Required params:
- comment
- alias
Choice:
- Get
- Delete
- Head
- Options : Required fields:
- Header (may be used 0 or more times)
- Param (may use 0 or more times)
- Response:
Required fields:
- header (0 or more times)
- warning (0 or more times):
- name ()
Required params:
- Code
- File Required params: endpoint
- Post
- Put
- Patch
- Trace: Required fields:
- Header (may be used 0 or more times)
- param (may use 0 or more times)
- Response: Required fields:
- header (0 or more times)
- warning (0 or more times):
- name ()
Required params:
- Code
- File Required params: endpoint
- Body:
Choice:
Param:
- Name
- Data – string
Multipart:
- Name
- Path
- Filename
From – file
Raw
<elasticsearch comment="Execute elasticsearch commands - create index"
alias="elastic_one">
<put endpoint="/my-index-000001">
<response file="expected_2.json"/>
<body>
<raw>
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 2
}
},
"mappings": {
"properties": {
"field1": { "type": "text" }
}
}
}
</raw>
</body>
</put>
</elasticsearch>
<lambda>
added version V.1.0,V.2.0
WEB UI
Description
Special syntax for defining functional objects, borrowed from λ-calculus in the test.
Parameters
Required params:
- comment
- alias
- fuctionName
Required fields:
Body:
- from
- Raw
Response:
Required params:
- Code
- File Optional fields:
- Header (0 or more times):
- Name
- Data
<lambda comment="Invoke python function"
alias="AWS"
functionName="hello-world-python">
<body>
<from file="body_1.json"/>
</body>
<response file="expected_1.json">
<header name="X-Amz-Executed-Version" data="$LATEST"/>
</response>
</lambda>
<sendgrid>
added version V.1.0,V.2.0
WEB UI
Description
Reliable email delivery in tests.
Parameters
Required params:
- comment
- alias
Choice:
Get
Delete : Required params:
Endpoint optional fields:
Response (0 or more times): Required params:
Code
File Optional params:
Header (0 or more times):
- Name
- Data
Header (0 or more times):
- Name
- data
Post
Put
Patch : Same as for “get” and “delete” but has an additional required field:
Body:
Choice:
Param:
- Name
- Data – string
Multipart:
- Name
- Path
- Filename
From – file
Raw
<sendgrid comment="Sending a message to the email with raw body" alias="sendgrid_one">
<post endpoint="/mail/send">
<response code="202"/>
<body>
<raw>{
"from":
{
"email" : "test@gmail.com"
},
"subject" : "Test message",
"personalizations" : [
{
"to" : [
{
"email" : "test@nure.ua"
}
]
}
],
"content" : [
{
"type" : "text/plain",
"value":"Sending direct test message raw"}
]
}
</raw>
</body>
</post>
</sendgrid>
<ses>
added version V.1.0,V.2.0
WEB UI
Description
A flexible and highly scalable cloud-based bulk email service, part of the Amazon Web Services (AWS) product line.
Parameters
Required param:
- comment
- alias
Required fields:
Destination – string destination
Source – string
Message:
Body:
- Html
- Text
Subject:
- charset
<ses comment="Sending a message to the email"
alias="ses_one">
<destination>example@gmail.com</destination>
<source>examplehello@gmail.com</source>
<message>
<body>
<html>Amazon SES test</html>
<text>Hello World</text>
</body>
<subject>TITLE</subject>
</message>
</ses>
<smtp>
added version V.1.0,V.2.0
WEB UI
Description
A network protocol used for transmitting e-mail over TCP/IP networks.
Parameters
Required params:
- comment
- alias
- recipientEmail
Required fields:
- Subject – string
- Text – string
<smtp comment="Trying to send email using Gmail SMTP server"
alias="gmail_smtp"
recipientEmail="test@gmail.com">
<subject>Test content</subject>
<text>Test content</text>
</smtp>
<twilio>
added version V.1.0,V.2.0
WEB UI
Description
Messaging Securely send and receive SMS, WhatsApp and chat messages with best-in-class communication APIs.
Parameters
Required params:
- comment
- alias
- destinationPhoneNumber
Required fields:
- message
message
<twilio comment="Trying to send sms using Twilio API" alias="twilio"
destinationPhoneNumber="your number phone">
<message>COTT Test</message>
</twilio>
<graphql>
added version V.1.0,V.2.0
WEB UI
Description
Syntax that describes how data is requested, and is mainly used by the client to download data from the server.
Parameters
Required params:
- comment
- alias
- endpoint
Required fields:
Body:
- From – file
- Raw – string
response (0 or more times):
Optional params:
- Code (default 200)
- File Optional fields (may be used 0 or more times):
- Header:
- Name
- Data
<graphql comment="graphQl mutation query"
endpoint="/graphql"
alias="graphql">
<body>
<raw>
{
characters(page: 2, filter: {name: "Morty"}) {
info { count }
results { name }
}
location(id: 1) { id }
episodesByIds(ids: [1, 2]) { id }
}
</raw>
</body>
<response code="200" file="expected_1.json"/>