synapse-hub 2.4.1 → 2.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/rules/graphify.md +14 -14
- package/.agents/rules/mandatory-playwright-live.md +29 -29
- package/.agents/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -614
- package/.agents/skills/clean-pom-crafter/examples/standard_test_case.groovy +28 -28
- package/.agents/skills/clean-pom-crafter/references/pom_patterns.groovy +138 -138
- package/.agents/skills/e2e-testing-patterns/resources/implementation-playbook.md +522 -522
- package/.agents/skills/failure-autopsy-and-healing/references/healing_matrix.md +64 -64
- package/.agents/skills/failure-autopsy-and-healing/references/qa_investigation_protocol.md +56 -56
- package/.agents/skills/failure-autopsy-and-healing/scripts/triage_failures.sh +98 -98
- package/.agents/skills/katalon-cli-runner/references/groovy-patterns.md +209 -209
- package/.agents/skills/katalon-cli-runner/references/katalon-api.md +155 -155
- package/.agents/skills/katalon-cli-runner/references/runner_commands.md +67 -67
- package/.agents/skills/playwright-live-interaction/references/advanced_superpowers.md +160 -160
- package/.agents/skills/playwright-live-interaction/references/compact_accessibility_snapshots.md +75 -75
- package/.agents/skills/playwright-live-interaction/references/recipes.md +388 -388
- package/.agents/skills/playwright-live-interaction/references/swarm_orchestration.md +134 -134
- package/.agents/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -541
- package/.agents/templates/completion_report.md +57 -57
- package/.agents/workflows/graphify.md +10 -10
- package/.cursor/rules/language.mdc +7 -7
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-06_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-07_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-08_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-09_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-10_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-21_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-22_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-23_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-24_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-25_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-01_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-02_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-03_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-04_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-05_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-16_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-17_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-18_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-19_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-20_stale_and_mutation.json +22 -22
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-11_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-12_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-13_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-14_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-15_timing_and_race.json +21 -21
- package/bin/agent-qa.js +0 -0
- package/docs/ARCHITECTURE.md +12 -1
- package/package.json +1 -1
- package/scripts/install.ps1 +112 -112
- package/scripts/lint_skills.ps1 +57 -57
- package/skills_manifest.json +1 -1
- package/synapse.config.json +1 -1
- package/tools/__init__.py +1 -1
- package/tools/agent_canary.py +501 -501
- package/tools/api_fuzzer.py +11 -2
- package/tools/browser_helpers.js +2 -2
- package/tools/bump_version.py +1 -0
- package/tools/check_env.py +71 -13
- package/tools/cli.py +2 -2
- package/tools/dashboard_generator.py +2 -2
- package/tools/e2e_flow_prober.sh +0 -0
- package/tools/generate_allure_report.sh +0 -0
- package/tools/generate_test_reports.sh +0 -0
- package/tools/mcp_excel_server.py +3 -1
- package/tools/mcp_excel_server.sh +0 -0
- package/tools/mcp_server.py +1 -1
- package/tools/pinpoint_failure.py +88 -88
- package/tools/setup_project.py +8 -0
- package/tools/update_sentinel.py +10 -9
- package/tools/verify_all.sh +0 -0
- package/tools/visual_som_helper.py +14 -3
- package/tools/welcome_page.py +1 -1
- package/benchmarks/qa_eval/reports/AB_METHODOLOGY_REPORT.md +0 -83
- package/benchmarks/qa_eval/reports/BENCHMARK_REPORT.md +0 -69
- package/benchmarks/qa_eval/reports/eval_results.json +0 -105
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
# Katalon Built-in Keywords API Reference
|
|
2
|
-
|
|
3
|
-
This document provides a reference for Katalon Studio's most commonly used built-in keywords.
|
|
4
|
-
|
|
5
|
-
## WebUI Keywords
|
|
6
|
-
|
|
7
|
-
Katalon's WebUI keywords are accessed via `com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords` (commonly imported as `WebUI`).
|
|
8
|
-
|
|
9
|
-
### Navigation Keywords
|
|
10
|
-
|
|
11
|
-
- `WebUI.openBrowser(url)` - Open a browser and navigate to URL
|
|
12
|
-
- `WebUI.navigateToUrl(url)` - Navigate to a URL in the current browser
|
|
13
|
-
- `WebUI.closeBrowser()` - Close the current browser
|
|
14
|
-
- `WebUI.back()` - Navigate back in browser history
|
|
15
|
-
- `WebUI.forward()` - Navigate forward in browser history
|
|
16
|
-
- `WebUI.refresh()` - Refresh the current page
|
|
17
|
-
- `WebUI.switchToWindowIndex(index)` - Switch to a browser window by index
|
|
18
|
-
- `WebUI.switchToWindowTitle(title)` - Switch to a browser window by title
|
|
19
|
-
- `WebUI.switchToWindowUrl(url)` - Switch to a browser window by URL
|
|
20
|
-
|
|
21
|
-
### Element Interaction Keywords
|
|
22
|
-
|
|
23
|
-
- `WebUI.click(testObject)` - Click on an element
|
|
24
|
-
- `WebUI.doubleClick(testObject)` - Double-click on an element
|
|
25
|
-
- `WebUI.rightClick(testObject)` - Right-click on an element
|
|
26
|
-
- `WebUI.setText(testObject, text)` - Set text for an input field
|
|
27
|
-
- `WebUI.sendKeys(testObject, text)` - Send keyboard input to an element
|
|
28
|
-
- `WebUI.clearText(testObject)` - Clear text from an input field
|
|
29
|
-
- `WebUI.selectOptionByValue(testObject, value, isRegex)` - Select dropdown option by value
|
|
30
|
-
- `WebUI.selectOptionByLabel(testObject, label, isRegex)` - Select dropdown option by label
|
|
31
|
-
- `WebUI.selectOptionByIndex(testObject, index)` - Select dropdown option by index
|
|
32
|
-
- `WebUI.check(testObject)` - Check a checkbox
|
|
33
|
-
- `WebUI.uncheck(testObject)` - Uncheck a checkbox
|
|
34
|
-
- `WebUI.uploadFile(testObject, filePath)` - Upload a file to a file input
|
|
35
|
-
|
|
36
|
-
### Wait Keywords
|
|
37
|
-
|
|
38
|
-
- `WebUI.waitForElementPresent(testObject, timeoutInSeconds)` - Wait for element to be present in DOM
|
|
39
|
-
- `WebUI.waitForElementVisible(testObject, timeoutInSeconds)` - Wait for element to be visible
|
|
40
|
-
- `WebUI.waitForElementClickable(testObject, timeoutInSeconds)` - Wait for element to be clickable
|
|
41
|
-
- `WebUI.waitForElementNotPresent(testObject, timeoutInSeconds)` - Wait for element to not be present
|
|
42
|
-
- `WebUI.waitForElementNotVisible(testObject, timeoutInSeconds)` - Wait for element to not be visible
|
|
43
|
-
- `WebUI.waitForPageLoad(timeoutInSeconds)` - Wait for page to fully load
|
|
44
|
-
- `WebUI.delay(timeInSeconds)` - Pause execution for specified seconds
|
|
45
|
-
|
|
46
|
-
### Verification Keywords
|
|
47
|
-
|
|
48
|
-
- `WebUI.verifyElementPresent(testObject, timeoutInSeconds)` - Verify element is present
|
|
49
|
-
- `WebUI.verifyElementVisible(testObject)` - Verify element is visible
|
|
50
|
-
- `WebUI.verifyElementClickable(testObject)` - Verify element is clickable
|
|
51
|
-
- `WebUI.verifyElementNotPresent(testObject, timeoutInSeconds)` - Verify element is not present
|
|
52
|
-
- `WebUI.verifyElementText(testObject, expectedText)` - Verify element contains expected text
|
|
53
|
-
- `WebUI.verifyTextPresent(text, isRegex)` - Verify text is present on the page
|
|
54
|
-
- `WebUI.verifyElementAttributeValue(testObject, attribute, expectedValue, timeoutInSeconds)` - Verify element attribute value
|
|
55
|
-
|
|
56
|
-
### Get Keywords
|
|
57
|
-
|
|
58
|
-
- `WebUI.getText(testObject)` - Get text content of an element
|
|
59
|
-
- `WebUI.getAttribute(testObject, attribute)` - Get attribute value of an element
|
|
60
|
-
- `WebUI.getCSSValue(testObject, propertyName)` - Get CSS property value
|
|
61
|
-
- `WebUI.getUrl()` - Get current page URL
|
|
62
|
-
- `WebUI.getWindowTitle()` - Get current window title
|
|
63
|
-
|
|
64
|
-
### Screenshot Keywords
|
|
65
|
-
|
|
66
|
-
- `WebUI.takeScreenshot(filePath)` - Take a screenshot and save to file
|
|
67
|
-
- `WebUI.takeFullPageScreenshot(filePath)` - Take a full-page screenshot
|
|
68
|
-
|
|
69
|
-
## Mobile Keywords
|
|
70
|
-
|
|
71
|
-
Katalon's Mobile keywords are accessed via `com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords` (commonly imported as `Mobile`).
|
|
72
|
-
|
|
73
|
-
### Common Mobile Keywords
|
|
74
|
-
|
|
75
|
-
- `Mobile.startApplication(appPath)` - Start a mobile application
|
|
76
|
-
- `Mobile.closeApplication()` - Close the current application
|
|
77
|
-
- `Mobile.tap(testObject, timeout)` - Tap on a mobile element
|
|
78
|
-
- `Mobile.setText(testObject, text, timeout)` - Set text in a mobile input
|
|
79
|
-
- `Mobile.getText(testObject, timeout)` - Get text from a mobile element
|
|
80
|
-
- `Mobile.verifyElementExist(testObject, timeout)` - Verify mobile element exists
|
|
81
|
-
- `Mobile.scrollToText(text)` - Scroll until specified text is visible
|
|
82
|
-
- `Mobile.swipe(startX, startY, endX, endY)` - Perform a swipe gesture
|
|
83
|
-
|
|
84
|
-
## Web Service (API) Keywords
|
|
85
|
-
|
|
86
|
-
Katalon's Web Service keywords are accessed via `com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords` (commonly imported as `WS`).
|
|
87
|
-
|
|
88
|
-
### API Keywords
|
|
89
|
-
|
|
90
|
-
- `WS.sendRequest(requestObject)` - Send a web service request
|
|
91
|
-
- `WS.verifyResponseStatusCode(response, statusCode)` - Verify HTTP response status code
|
|
92
|
-
- `WS.verifyElementPropertyValue(response, locator, expectedValue)` - Verify JSON/XML element value
|
|
93
|
-
- `WS.getElementPropertyValue(response, locator)` - Get value from JSON/XML response
|
|
94
|
-
- `WS.verifyElementsCount(response, locator, expectedCount)` - Verify count of elements in response
|
|
95
|
-
|
|
96
|
-
## Utility Keywords
|
|
97
|
-
|
|
98
|
-
### Checkpoint Keywords
|
|
99
|
-
|
|
100
|
-
- `findCheckpoint(checkpointName)` - Find a checkpoint by name
|
|
101
|
-
|
|
102
|
-
### Test Case Keywords
|
|
103
|
-
|
|
104
|
-
- `findTestCase(testCasePath)` - Find a test case by path
|
|
105
|
-
- `WebUI.callTestCase(testCase, variables)` - Call another test case
|
|
106
|
-
|
|
107
|
-
### Test Data Keywords
|
|
108
|
-
|
|
109
|
-
- `findTestData(testDataName)` - Find test data by name
|
|
110
|
-
|
|
111
|
-
### Object Repository Keywords
|
|
112
|
-
|
|
113
|
-
- `findTestObject(objectPath)` - Find a test object from Object Repository
|
|
114
|
-
- `findTestObject(objectPath, variables)` - Find a test object with variable bindings
|
|
115
|
-
|
|
116
|
-
## Global Variables
|
|
117
|
-
|
|
118
|
-
Access global variables defined in profiles using `internal.GlobalVariable`:
|
|
119
|
-
|
|
120
|
-
```groovy
|
|
121
|
-
import internal.GlobalVariable
|
|
122
|
-
|
|
123
|
-
// Access a global variable
|
|
124
|
-
String url = GlobalVariable.baseUrl
|
|
125
|
-
String username = GlobalVariable.username
|
|
126
|
-
int timeout = GlobalVariable.waitTimeout
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## Failure Handling
|
|
130
|
-
|
|
131
|
-
Control how test execution handles failures using `com.kms.katalon.core.model.FailureHandling`:
|
|
132
|
-
|
|
133
|
-
- `FailureHandling.STOP_ON_FAILURE` - Stop test execution on failure (default)
|
|
134
|
-
- `FailureHandling.CONTINUE_ON_FAILURE` - Continue execution even if step fails
|
|
135
|
-
- `FailureHandling.OPTIONAL` - Mark step as optional, continue regardless of result
|
|
136
|
-
|
|
137
|
-
Example:
|
|
138
|
-
```groovy
|
|
139
|
-
WebUI.verifyElementPresent(findTestObject('optionalElement'), 5, FailureHandling.OPTIONAL)
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Annotations for Custom Keywords
|
|
143
|
-
|
|
144
|
-
When creating custom keywords, use the `@Keyword` annotation:
|
|
145
|
-
|
|
146
|
-
```groovy
|
|
147
|
-
import com.kms.katalon.core.annotation.Keyword
|
|
148
|
-
|
|
149
|
-
class MyKeywords {
|
|
150
|
-
@Keyword
|
|
151
|
-
def myCustomKeyword(String param) {
|
|
152
|
-
// Implementation
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
```
|
|
1
|
+
# Katalon Built-in Keywords API Reference
|
|
2
|
+
|
|
3
|
+
This document provides a reference for Katalon Studio's most commonly used built-in keywords.
|
|
4
|
+
|
|
5
|
+
## WebUI Keywords
|
|
6
|
+
|
|
7
|
+
Katalon's WebUI keywords are accessed via `com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords` (commonly imported as `WebUI`).
|
|
8
|
+
|
|
9
|
+
### Navigation Keywords
|
|
10
|
+
|
|
11
|
+
- `WebUI.openBrowser(url)` - Open a browser and navigate to URL
|
|
12
|
+
- `WebUI.navigateToUrl(url)` - Navigate to a URL in the current browser
|
|
13
|
+
- `WebUI.closeBrowser()` - Close the current browser
|
|
14
|
+
- `WebUI.back()` - Navigate back in browser history
|
|
15
|
+
- `WebUI.forward()` - Navigate forward in browser history
|
|
16
|
+
- `WebUI.refresh()` - Refresh the current page
|
|
17
|
+
- `WebUI.switchToWindowIndex(index)` - Switch to a browser window by index
|
|
18
|
+
- `WebUI.switchToWindowTitle(title)` - Switch to a browser window by title
|
|
19
|
+
- `WebUI.switchToWindowUrl(url)` - Switch to a browser window by URL
|
|
20
|
+
|
|
21
|
+
### Element Interaction Keywords
|
|
22
|
+
|
|
23
|
+
- `WebUI.click(testObject)` - Click on an element
|
|
24
|
+
- `WebUI.doubleClick(testObject)` - Double-click on an element
|
|
25
|
+
- `WebUI.rightClick(testObject)` - Right-click on an element
|
|
26
|
+
- `WebUI.setText(testObject, text)` - Set text for an input field
|
|
27
|
+
- `WebUI.sendKeys(testObject, text)` - Send keyboard input to an element
|
|
28
|
+
- `WebUI.clearText(testObject)` - Clear text from an input field
|
|
29
|
+
- `WebUI.selectOptionByValue(testObject, value, isRegex)` - Select dropdown option by value
|
|
30
|
+
- `WebUI.selectOptionByLabel(testObject, label, isRegex)` - Select dropdown option by label
|
|
31
|
+
- `WebUI.selectOptionByIndex(testObject, index)` - Select dropdown option by index
|
|
32
|
+
- `WebUI.check(testObject)` - Check a checkbox
|
|
33
|
+
- `WebUI.uncheck(testObject)` - Uncheck a checkbox
|
|
34
|
+
- `WebUI.uploadFile(testObject, filePath)` - Upload a file to a file input
|
|
35
|
+
|
|
36
|
+
### Wait Keywords
|
|
37
|
+
|
|
38
|
+
- `WebUI.waitForElementPresent(testObject, timeoutInSeconds)` - Wait for element to be present in DOM
|
|
39
|
+
- `WebUI.waitForElementVisible(testObject, timeoutInSeconds)` - Wait for element to be visible
|
|
40
|
+
- `WebUI.waitForElementClickable(testObject, timeoutInSeconds)` - Wait for element to be clickable
|
|
41
|
+
- `WebUI.waitForElementNotPresent(testObject, timeoutInSeconds)` - Wait for element to not be present
|
|
42
|
+
- `WebUI.waitForElementNotVisible(testObject, timeoutInSeconds)` - Wait for element to not be visible
|
|
43
|
+
- `WebUI.waitForPageLoad(timeoutInSeconds)` - Wait for page to fully load
|
|
44
|
+
- `WebUI.delay(timeInSeconds)` - Pause execution for specified seconds
|
|
45
|
+
|
|
46
|
+
### Verification Keywords
|
|
47
|
+
|
|
48
|
+
- `WebUI.verifyElementPresent(testObject, timeoutInSeconds)` - Verify element is present
|
|
49
|
+
- `WebUI.verifyElementVisible(testObject)` - Verify element is visible
|
|
50
|
+
- `WebUI.verifyElementClickable(testObject)` - Verify element is clickable
|
|
51
|
+
- `WebUI.verifyElementNotPresent(testObject, timeoutInSeconds)` - Verify element is not present
|
|
52
|
+
- `WebUI.verifyElementText(testObject, expectedText)` - Verify element contains expected text
|
|
53
|
+
- `WebUI.verifyTextPresent(text, isRegex)` - Verify text is present on the page
|
|
54
|
+
- `WebUI.verifyElementAttributeValue(testObject, attribute, expectedValue, timeoutInSeconds)` - Verify element attribute value
|
|
55
|
+
|
|
56
|
+
### Get Keywords
|
|
57
|
+
|
|
58
|
+
- `WebUI.getText(testObject)` - Get text content of an element
|
|
59
|
+
- `WebUI.getAttribute(testObject, attribute)` - Get attribute value of an element
|
|
60
|
+
- `WebUI.getCSSValue(testObject, propertyName)` - Get CSS property value
|
|
61
|
+
- `WebUI.getUrl()` - Get current page URL
|
|
62
|
+
- `WebUI.getWindowTitle()` - Get current window title
|
|
63
|
+
|
|
64
|
+
### Screenshot Keywords
|
|
65
|
+
|
|
66
|
+
- `WebUI.takeScreenshot(filePath)` - Take a screenshot and save to file
|
|
67
|
+
- `WebUI.takeFullPageScreenshot(filePath)` - Take a full-page screenshot
|
|
68
|
+
|
|
69
|
+
## Mobile Keywords
|
|
70
|
+
|
|
71
|
+
Katalon's Mobile keywords are accessed via `com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords` (commonly imported as `Mobile`).
|
|
72
|
+
|
|
73
|
+
### Common Mobile Keywords
|
|
74
|
+
|
|
75
|
+
- `Mobile.startApplication(appPath)` - Start a mobile application
|
|
76
|
+
- `Mobile.closeApplication()` - Close the current application
|
|
77
|
+
- `Mobile.tap(testObject, timeout)` - Tap on a mobile element
|
|
78
|
+
- `Mobile.setText(testObject, text, timeout)` - Set text in a mobile input
|
|
79
|
+
- `Mobile.getText(testObject, timeout)` - Get text from a mobile element
|
|
80
|
+
- `Mobile.verifyElementExist(testObject, timeout)` - Verify mobile element exists
|
|
81
|
+
- `Mobile.scrollToText(text)` - Scroll until specified text is visible
|
|
82
|
+
- `Mobile.swipe(startX, startY, endX, endY)` - Perform a swipe gesture
|
|
83
|
+
|
|
84
|
+
## Web Service (API) Keywords
|
|
85
|
+
|
|
86
|
+
Katalon's Web Service keywords are accessed via `com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords` (commonly imported as `WS`).
|
|
87
|
+
|
|
88
|
+
### API Keywords
|
|
89
|
+
|
|
90
|
+
- `WS.sendRequest(requestObject)` - Send a web service request
|
|
91
|
+
- `WS.verifyResponseStatusCode(response, statusCode)` - Verify HTTP response status code
|
|
92
|
+
- `WS.verifyElementPropertyValue(response, locator, expectedValue)` - Verify JSON/XML element value
|
|
93
|
+
- `WS.getElementPropertyValue(response, locator)` - Get value from JSON/XML response
|
|
94
|
+
- `WS.verifyElementsCount(response, locator, expectedCount)` - Verify count of elements in response
|
|
95
|
+
|
|
96
|
+
## Utility Keywords
|
|
97
|
+
|
|
98
|
+
### Checkpoint Keywords
|
|
99
|
+
|
|
100
|
+
- `findCheckpoint(checkpointName)` - Find a checkpoint by name
|
|
101
|
+
|
|
102
|
+
### Test Case Keywords
|
|
103
|
+
|
|
104
|
+
- `findTestCase(testCasePath)` - Find a test case by path
|
|
105
|
+
- `WebUI.callTestCase(testCase, variables)` - Call another test case
|
|
106
|
+
|
|
107
|
+
### Test Data Keywords
|
|
108
|
+
|
|
109
|
+
- `findTestData(testDataName)` - Find test data by name
|
|
110
|
+
|
|
111
|
+
### Object Repository Keywords
|
|
112
|
+
|
|
113
|
+
- `findTestObject(objectPath)` - Find a test object from Object Repository
|
|
114
|
+
- `findTestObject(objectPath, variables)` - Find a test object with variable bindings
|
|
115
|
+
|
|
116
|
+
## Global Variables
|
|
117
|
+
|
|
118
|
+
Access global variables defined in profiles using `internal.GlobalVariable`:
|
|
119
|
+
|
|
120
|
+
```groovy
|
|
121
|
+
import internal.GlobalVariable
|
|
122
|
+
|
|
123
|
+
// Access a global variable
|
|
124
|
+
String url = GlobalVariable.baseUrl
|
|
125
|
+
String username = GlobalVariable.username
|
|
126
|
+
int timeout = GlobalVariable.waitTimeout
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Failure Handling
|
|
130
|
+
|
|
131
|
+
Control how test execution handles failures using `com.kms.katalon.core.model.FailureHandling`:
|
|
132
|
+
|
|
133
|
+
- `FailureHandling.STOP_ON_FAILURE` - Stop test execution on failure (default)
|
|
134
|
+
- `FailureHandling.CONTINUE_ON_FAILURE` - Continue execution even if step fails
|
|
135
|
+
- `FailureHandling.OPTIONAL` - Mark step as optional, continue regardless of result
|
|
136
|
+
|
|
137
|
+
Example:
|
|
138
|
+
```groovy
|
|
139
|
+
WebUI.verifyElementPresent(findTestObject('optionalElement'), 5, FailureHandling.OPTIONAL)
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Annotations for Custom Keywords
|
|
143
|
+
|
|
144
|
+
When creating custom keywords, use the `@Keyword` annotation:
|
|
145
|
+
|
|
146
|
+
```groovy
|
|
147
|
+
import com.kms.katalon.core.annotation.Keyword
|
|
148
|
+
|
|
149
|
+
class MyKeywords {
|
|
150
|
+
@Keyword
|
|
151
|
+
def myCustomKeyword(String param) {
|
|
152
|
+
// Implementation
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
```
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
# CLI Runner Commands & Enterprise Test Suites Registry
|
|
2
|
-
|
|
3
|
-
Reference documentation for the `katalon-cli-runner` skill.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. Environment Variable Configuration (.env)
|
|
8
|
-
```bash
|
|
9
|
-
KATALON_API_KEY="your_actual_api_key_here"
|
|
10
|
-
KATALON_PROJECT_PATH="/path/to/project"
|
|
11
|
-
TELEGRAM_BOT_TOKEN="your_bot_token"
|
|
12
|
-
TELEGRAM_CHAT_ID="your_chat_id"
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## 2. Platform-Specific Execution Commands (KRE CLI)
|
|
18
|
-
|
|
19
|
-
### 2.1. Windows Environment (PowerShell Runner)
|
|
20
|
-
```powershell
|
|
21
|
-
# Run Test Suite with API Key
|
|
22
|
-
powershell -ExecutionPolicy Bypass -File .\run_tests_windows.ps1 -Suite "Test Suites/07_QuanTriDuLieu" -ApiKey $env:KATALON_API_KEY
|
|
23
|
-
|
|
24
|
-
# Run single Test Suite for debugging:
|
|
25
|
-
powershell -ExecutionPolicy Bypass -File .\run_tests_windows.ps1 -Suite "Test Suites/Group_07_01_CumCongNghiep"
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### 2.2. macOS / Linux CLI (Headless Full HD)
|
|
29
|
-
```bash
|
|
30
|
-
# Run Test Suite
|
|
31
|
-
katalonc \
|
|
32
|
-
-noSplash \
|
|
33
|
-
-runMode=console \
|
|
34
|
-
-projectPath="$(pwd)/project.prj" \
|
|
35
|
-
-retry=0 \
|
|
36
|
-
-testSuitePath="Test Suites/07_QuanTriDuLieu" \
|
|
37
|
-
-browserType="Chrome (headless)" \
|
|
38
|
-
-executionProfile="default" \
|
|
39
|
-
-apiKey="$KATALON_API_KEY" \
|
|
40
|
-
--args="-headless --window-size=1920,1080 --disable-gpu --no-sandbox --disable-dev-shm-usage"
|
|
41
|
-
|
|
42
|
-
# Run single Test Case (Debug Mode):
|
|
43
|
-
katalonc \
|
|
44
|
-
-noSplash \
|
|
45
|
-
-runMode=console \
|
|
46
|
-
-projectPath="$(pwd)/project.prj" \
|
|
47
|
-
-testCasePath="Test Cases/TC-1 Kiểm tra tạo mới thành công" \
|
|
48
|
-
-browserType="Chrome (headless)" \
|
|
49
|
-
-apiKey="$KATALON_API_KEY"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## 3. Standard Enterprise Test Suite Registry
|
|
55
|
-
|
|
56
|
-
| Test Suite Name | Scale | Target Functional Module |
|
|
57
|
-
| :--- | :---: | :--- |
|
|
58
|
-
| `Test Suites/All_Tests` | Full Suite | All functional modules |
|
|
59
|
-
| `Test Suites/01_QuanLyChiTieu` | 7 TCs | Target Planning |
|
|
60
|
-
| `Test Suites/02_XacThucNguoiDung` | 5 TCs | User Authentication & Profiles |
|
|
61
|
-
| `Test Suites/03_QuanTriHeThong` | 4 TCs | System Administration & Users |
|
|
62
|
-
| `Test Suites/04_DanhMucDungChung` | 12 TCs | Common Categories (Departments, Roles) |
|
|
63
|
-
| `Test Suites/05_DanhMucNganhCongThuong` | 64 TCs | 16 Industry Sub-Categories |
|
|
64
|
-
| `Test Suites/06_QuyHoachCongThuong` | 30 TCs | Sector Planning |
|
|
65
|
-
| `Test Suites/07_QuanTriDuLieu` | 125 TCs | Data Mining & GIS Maps |
|
|
66
|
-
| `Test Suites/08_BaoCaoThongKe` | 2 TCs | Statistical Reports (Data & Permits) |
|
|
67
|
-
| `Test Suites/09_ChiaSeDuLieu` | 10 TCs | Data Sharing & API Token Lifecycle |
|
|
1
|
+
# CLI Runner Commands & Enterprise Test Suites Registry
|
|
2
|
+
|
|
3
|
+
Reference documentation for the `katalon-cli-runner` skill.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Environment Variable Configuration (.env)
|
|
8
|
+
```bash
|
|
9
|
+
KATALON_API_KEY="your_actual_api_key_here"
|
|
10
|
+
KATALON_PROJECT_PATH="/path/to/project"
|
|
11
|
+
TELEGRAM_BOT_TOKEN="your_bot_token"
|
|
12
|
+
TELEGRAM_CHAT_ID="your_chat_id"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. Platform-Specific Execution Commands (KRE CLI)
|
|
18
|
+
|
|
19
|
+
### 2.1. Windows Environment (PowerShell Runner)
|
|
20
|
+
```powershell
|
|
21
|
+
# Run Test Suite with API Key
|
|
22
|
+
powershell -ExecutionPolicy Bypass -File .\run_tests_windows.ps1 -Suite "Test Suites/07_QuanTriDuLieu" -ApiKey $env:KATALON_API_KEY
|
|
23
|
+
|
|
24
|
+
# Run single Test Suite for debugging:
|
|
25
|
+
powershell -ExecutionPolicy Bypass -File .\run_tests_windows.ps1 -Suite "Test Suites/Group_07_01_CumCongNghiep"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 2.2. macOS / Linux CLI (Headless Full HD)
|
|
29
|
+
```bash
|
|
30
|
+
# Run Test Suite
|
|
31
|
+
katalonc \
|
|
32
|
+
-noSplash \
|
|
33
|
+
-runMode=console \
|
|
34
|
+
-projectPath="$(pwd)/project.prj" \
|
|
35
|
+
-retry=0 \
|
|
36
|
+
-testSuitePath="Test Suites/07_QuanTriDuLieu" \
|
|
37
|
+
-browserType="Chrome (headless)" \
|
|
38
|
+
-executionProfile="default" \
|
|
39
|
+
-apiKey="$KATALON_API_KEY" \
|
|
40
|
+
--args="-headless --window-size=1920,1080 --disable-gpu --no-sandbox --disable-dev-shm-usage"
|
|
41
|
+
|
|
42
|
+
# Run single Test Case (Debug Mode):
|
|
43
|
+
katalonc \
|
|
44
|
+
-noSplash \
|
|
45
|
+
-runMode=console \
|
|
46
|
+
-projectPath="$(pwd)/project.prj" \
|
|
47
|
+
-testCasePath="Test Cases/TC-1 Kiểm tra tạo mới thành công" \
|
|
48
|
+
-browserType="Chrome (headless)" \
|
|
49
|
+
-apiKey="$KATALON_API_KEY"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 3. Standard Enterprise Test Suite Registry
|
|
55
|
+
|
|
56
|
+
| Test Suite Name | Scale | Target Functional Module |
|
|
57
|
+
| :--- | :---: | :--- |
|
|
58
|
+
| `Test Suites/All_Tests` | Full Suite | All functional modules |
|
|
59
|
+
| `Test Suites/01_QuanLyChiTieu` | 7 TCs | Target Planning |
|
|
60
|
+
| `Test Suites/02_XacThucNguoiDung` | 5 TCs | User Authentication & Profiles |
|
|
61
|
+
| `Test Suites/03_QuanTriHeThong` | 4 TCs | System Administration & Users |
|
|
62
|
+
| `Test Suites/04_DanhMucDungChung` | 12 TCs | Common Categories (Departments, Roles) |
|
|
63
|
+
| `Test Suites/05_DanhMucNganhCongThuong` | 64 TCs | 16 Industry Sub-Categories |
|
|
64
|
+
| `Test Suites/06_QuyHoachCongThuong` | 30 TCs | Sector Planning |
|
|
65
|
+
| `Test Suites/07_QuanTriDuLieu` | 125 TCs | Data Mining & GIS Maps |
|
|
66
|
+
| `Test Suites/08_BaoCaoThongKe` | 2 TCs | Statistical Reports (Data & Permits) |
|
|
67
|
+
| `Test Suites/09_ChiaSeDuLieu` | 10 TCs | Data Sharing & API Token Lifecycle |
|