synapse-hub 2.4.1 → 2.4.2

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.
Files changed (75) hide show
  1. package/.agents/rules/graphify.md +14 -14
  2. package/.agents/rules/mandatory-playwright-live.md +29 -29
  3. package/.agents/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -614
  4. package/.agents/skills/clean-pom-crafter/examples/standard_test_case.groovy +28 -28
  5. package/.agents/skills/clean-pom-crafter/references/pom_patterns.groovy +138 -138
  6. package/.agents/skills/e2e-testing-patterns/resources/implementation-playbook.md +522 -522
  7. package/.agents/skills/failure-autopsy-and-healing/references/healing_matrix.md +64 -64
  8. package/.agents/skills/failure-autopsy-and-healing/references/qa_investigation_protocol.md +56 -56
  9. package/.agents/skills/failure-autopsy-and-healing/scripts/triage_failures.sh +98 -98
  10. package/.agents/skills/katalon-cli-runner/references/groovy-patterns.md +209 -209
  11. package/.agents/skills/katalon-cli-runner/references/katalon-api.md +155 -155
  12. package/.agents/skills/katalon-cli-runner/references/runner_commands.md +67 -67
  13. package/.agents/skills/playwright-live-interaction/references/advanced_superpowers.md +160 -160
  14. package/.agents/skills/playwright-live-interaction/references/compact_accessibility_snapshots.md +75 -75
  15. package/.agents/skills/playwright-live-interaction/references/recipes.md +388 -388
  16. package/.agents/skills/playwright-live-interaction/references/swarm_orchestration.md +134 -134
  17. package/.agents/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -541
  18. package/.agents/templates/completion_report.md +57 -57
  19. package/.agents/workflows/graphify.md +10 -10
  20. package/.cursor/rules/language.mdc +7 -7
  21. package/README.en.md +1 -1
  22. package/README.md +1 -1
  23. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-06_api_contract_drift.json +21 -21
  24. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-07_api_contract_drift.json +21 -21
  25. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-08_api_contract_drift.json +21 -21
  26. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-09_api_contract_drift.json +21 -21
  27. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-10_api_contract_drift.json +21 -21
  28. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-21_fake_pass_tautology.json +20 -20
  29. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-22_fake_pass_tautology.json +20 -20
  30. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-23_fake_pass_tautology.json +20 -20
  31. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-24_fake_pass_tautology.json +20 -20
  32. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-25_fake_pass_tautology.json +20 -20
  33. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-01_locator_drift.json +22 -22
  34. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-02_locator_drift.json +22 -22
  35. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-03_locator_drift.json +22 -22
  36. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-04_locator_drift.json +22 -22
  37. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-05_locator_drift.json +22 -22
  38. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-16_stale_and_mutation.json +21 -21
  39. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-17_stale_and_mutation.json +21 -21
  40. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-18_stale_and_mutation.json +21 -21
  41. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-19_stale_and_mutation.json +21 -21
  42. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-20_stale_and_mutation.json +22 -22
  43. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-11_timing_and_race.json +21 -21
  44. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-12_timing_and_race.json +21 -21
  45. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-13_timing_and_race.json +21 -21
  46. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-14_timing_and_race.json +21 -21
  47. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-15_timing_and_race.json +21 -21
  48. package/benchmarks/qa_eval/reports/BENCHMARK_REPORT.md +94 -69
  49. package/benchmarks/qa_eval/reports/eval_results.json +460 -104
  50. package/bin/agent-qa.js +0 -0
  51. package/docs/ARCHITECTURE.md +12 -1
  52. package/package.json +1 -1
  53. package/scripts/install.ps1 +112 -112
  54. package/scripts/lint_skills.ps1 +57 -57
  55. package/skills_manifest.json +1 -1
  56. package/synapse.config.json +1 -1
  57. package/tools/__init__.py +1 -1
  58. package/tools/agent_canary.py +501 -501
  59. package/tools/api_fuzzer.py +11 -2
  60. package/tools/browser_helpers.js +2 -2
  61. package/tools/bump_version.py +1 -0
  62. package/tools/cli.py +2 -2
  63. package/tools/dashboard_generator.py +2 -2
  64. package/tools/e2e_flow_prober.sh +0 -0
  65. package/tools/generate_allure_report.sh +0 -0
  66. package/tools/generate_test_reports.sh +0 -0
  67. package/tools/mcp_excel_server.py +3 -1
  68. package/tools/mcp_excel_server.sh +0 -0
  69. package/tools/mcp_server.py +1 -1
  70. package/tools/pinpoint_failure.py +88 -88
  71. package/tools/update_sentinel.py +3 -3
  72. package/tools/verify_all.sh +0 -0
  73. package/tools/visual_som_helper.py +14 -3
  74. package/tools/welcome_page.py +1 -1
  75. package/benchmarks/qa_eval/reports/AB_METHODOLOGY_REPORT.md +0 -83
@@ -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 |