feat: archive zoo_backup for home sync
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
---
|
||||
name: ssh-integration-test
|
||||
description: Run structured integration tests on PAISY SSH test instances. Selects instances by module, executes PAI programs, compares expected vs actual output, looks up error codes via ADP Docs Wiki, and logs results to BigMind. Use when asked to test on a PAISY instance, run SSH tests, or verify PAI program output.
|
||||
---
|
||||
|
||||
# SSH Integration Test
|
||||
|
||||
## When to use
|
||||
|
||||
- Running PAI programs on a PAISY test instance to verify changes
|
||||
- Executing SSH test cases from a testplan document
|
||||
- Verifying PAISY batch processing after deploying a new JAR
|
||||
|
||||
## When NOT to use
|
||||
|
||||
- Running Maven unit/integration tests locally → use `mvn-test` skill
|
||||
- Deploying a JAR without structured testing → use `ssh-test-deploy` skill directly
|
||||
- Writing test code → use Code mode
|
||||
|
||||
## Required Inputs
|
||||
|
||||
| Input | Source | Example |
|
||||
|-------|--------|---------|
|
||||
| `TICKET_KEY` | Jira issue key | `ESIDEPAISY-12366` |
|
||||
| `MODULE` | PAISY module name | `svmeldungen`, `eau`, `eubp` |
|
||||
| `PROGRAM` | PAI program to run | `PAI022`, `PAIBATCH`, `PAI028` |
|
||||
| `INSTANCE` | SSH instance (optional — auto-selected) | `Halling.123`, `Tanja.122` |
|
||||
|
||||
## Instance Selection
|
||||
|
||||
| Module / Use case | Recommended instance | Reason |
|
||||
|-------------------|---------------------|--------|
|
||||
| SVMeldungen (DSAK, DSBD) | Tanja instances | DSAK test data available |
|
||||
| Zentrale Rückmeldeverarbeitung | Halling instances | Central processing setup |
|
||||
| Mandant testing | Halling instances | Multi-tenant config |
|
||||
| EAU, EuBP, DaBPV | Any available | No special requirements |
|
||||
|
||||
If `INSTANCE` is not provided, auto-select:
|
||||
```python
|
||||
instances = list-instances()
|
||||
# Pick based on module using the table above
|
||||
set-instance(instance=<selected>)
|
||||
```
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Read testplan SSH test cases (if available)
|
||||
|
||||
```bash
|
||||
cat docs/<MODULE>/<TICKET_KEY>/<TICKET_KEY>-testplan.md
|
||||
```
|
||||
|
||||
Extract rows from the "Manuelle Tests (SSH)" table. Each row has: ID, Instanz, Programm, Eingabe, Erwartetes Ergebnis.
|
||||
|
||||
If no testplan exists, proceed with the user-provided program and args.
|
||||
|
||||
### 2. Select and connect to instance
|
||||
|
||||
```python
|
||||
list-instances()
|
||||
set-instance(instance="<INSTANCE>")
|
||||
```
|
||||
|
||||
### 3. Build and upload JAR (if not already deployed)
|
||||
|
||||
```bash
|
||||
cd /Users/pplate/git/paisy-<TICKET_KEY>
|
||||
mvn package -pl <MODULE_PATH> -am -DskipTests -f java/pom.xml
|
||||
```
|
||||
|
||||
```python
|
||||
upload-file(
|
||||
localPath="/Users/pplate/git/paisy-<TICKET_KEY>/<MODULE_PATH>/target/<MODULE>-<version>.jar",
|
||||
remoteFilename="<MODULE>-<version>.jar"
|
||||
)
|
||||
```
|
||||
|
||||
### 4. Execute test cases
|
||||
|
||||
For each test case from the testplan (or the single user-provided test):
|
||||
|
||||
```python
|
||||
result = run-program(program="<PROGRAM>", args="<PROGRAM_ARGS>")
|
||||
```
|
||||
|
||||
### 5. Compare expected vs actual
|
||||
|
||||
For each test case, evaluate:
|
||||
|
||||
| Check | How |
|
||||
|-------|-----|
|
||||
| Return code | `RC=0` → pass, `RC=4` → warning, `RC>=8` → fail |
|
||||
| Error prefix | Output starting with `F;` → PAISY error |
|
||||
| Expected output | Compare against testplan "Erwartetes Ergebnis" |
|
||||
| Data verification | Use `exec-command` to query results if needed |
|
||||
|
||||
### 6. Look up error codes (on failure)
|
||||
|
||||
If a `F;` error or unexpected RC occurs:
|
||||
|
||||
```python
|
||||
# Check BigMind first
|
||||
memory_search_facts("PAISY error <code>")
|
||||
|
||||
# Then ADP Docs Wiki Fehlermeldungen page (ID: 15196)
|
||||
set-wiki(uri="mcp://wikis/adpdocs.de.adp.com")
|
||||
get-page(title="Fehlermeldungen")
|
||||
```
|
||||
|
||||
### 7. Verify with shell commands (optional)
|
||||
|
||||
```python
|
||||
exec-command(command="ls -la /path/to/output/")
|
||||
exec-command(command="cat /path/to/logfile.log | tail -50")
|
||||
exec-command(command="grep -c 'DSAK' /path/to/output/file")
|
||||
```
|
||||
|
||||
### 8. Log results to BigMind
|
||||
|
||||
```python
|
||||
memory_store_fact(
|
||||
category="codebase",
|
||||
fact=f"{TICKET_KEY}: SSH test on {INSTANCE} — {PROGRAM} {PROGRAM_ARGS} → RC={rc}. {passed}/{total} test cases passed."
|
||||
)
|
||||
memory_append_chunk(
|
||||
session_id=SESSION_ID,
|
||||
content=f"SSH integration test results for {TICKET_KEY}:\n"
|
||||
f"Instance: {INSTANCE}\n"
|
||||
f"Program: {PROGRAM}\n"
|
||||
f"Test cases:\n"
|
||||
f" {test_id}: expected={expected}, actual={actual}, status={pass/fail}\n"
|
||||
f" ...",
|
||||
flag_reason="SSH test results"
|
||||
)
|
||||
```
|
||||
|
||||
### 9. Update testplan status (if testplan exists)
|
||||
|
||||
Report back which SSH test cases passed/failed so the testplan document can be updated:
|
||||
|
||||
| ID | Erwartetes Ergebnis | Tatsächliches Ergebnis | Status |
|
||||
|----|-------------------|----------------------|--------|
|
||||
| MT-01 | RC=0, keine Fehler | RC=0 | ✅ |
|
||||
| MT-02 | 3 DSAK records | 3 DSAK records | ✅ |
|
||||
|
||||
## Common Programs
|
||||
|
||||
| Program | Module | Typical args | What it does |
|
||||
|---------|--------|-------------|-------------|
|
||||
| `PAI022` | SVMeldungen | `"-svmeldungen DSAK"` | SV-Meldeverfahren batch |
|
||||
| `PAI022` | EAU | `"-eau"` | eAU processing |
|
||||
| `PAI028` | SVD | (none) | Import SVD.XML data |
|
||||
| `PAIBATCH` | Various | module-specific | General batch runner |
|
||||
| `PAI030` | Lohnsteuer | `"-lstb"` | Tax certificate |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Problem | Solution |
|
||||
|---------|----------|
|
||||
| `F;` response | Parse error code, look up in ADP Docs Wiki (page 15196) |
|
||||
| `RC=15` | SVD.XML outdated — run `PAI028` first to import fresh SVD data |
|
||||
| Connection timeout | Instance may be down — try another from `list-instances()` |
|
||||
| JAR not found after upload | Check upload path with `exec-command("ls -la /path/to/jars/")` |
|
||||
| Unexpected empty output | Check if the correct Mandant/BBNR is configured on the instance |
|
||||
Reference in New Issue
Block a user