Squirt 3.21
Squirt - WinCC OA GUI test framework

is a framework to test WinCC OA native panels (GUI) provided in the .pnl or .xml format.

Narrative guides live under docs/. API reference is generated from CTL Doxygen comments; this README is the help main page.


Usage

  • provide tests by macro recording
  • provide verification points by macro recording
  • replay and execute tests
  • logs all verification points (asserts)
  • create screenshots on assertions
  • bind tests into WinCC OA test frameworks
  • ...

For a longer walkthrough, see docs/usage.md.

Squirt GUI tests are based on the WinCC OA OaTest class and therefore follow the WinCC OA Test concept.

Execution options:

  • run in GEDI with HSP (High-Speed Programming) for local user tests in the WinCC OA IDE
  • run from command line
  • run fully automated in WinCC OA TestFramework for CI/CD

Configuration

TBD — extend docs/ when configuration details stabilize.

Splash Command-Line Interface

The sq-cli wrappers require the WinCC OA bin directory and src/Squirt/bin to be on PATH. For example, in PowerShell:

$env:PATH = "C:\Program Files\Siemens\WinCC_OA\3.22\bin;C:\ws\winccoa-tools-pack\winccoa-native-gui-test-framework\src\Squirt\bin;$env:PATH"

Start a recording with a panel path relative to panels/ and a test-script path relative to scripts/:

sq-cli.cmd DPE_monitor_test_3.22 record -winccoa-tools-pack.squirt.panel.path=/vision/login.pnl -winccoa-tools-pack.squirt.testScript.path=tests/vision/login/tc1.ctl -winccoa-tools-pack.squirt.testScript.force=true

The POSIX wrapper is named sq-cli.sh and accepts the same project, command, and settings. pause, resume, and status operate on the current session. Stop the current recording and save it to its configured path with:

sq-cli.cmd DPE_monitor_test_3.22 stop -winccoa-tools-pack.squirt.testScript.path=tests/vision/login/tc1.ctl -winccoa-tools-pack.squirt.testScript.force=true

testScript.force=true allows an existing output script to be overwritten. Only project-relative paths under scripts/tests/ are accepted for generated test scripts.

The headless CLI validation suite is suite_CLI; it checks accepted and rejected project-relative panel and script paths without launching WCCOAui. See the suite documentation for execution details. Recording and playback lifecycle integration still requires a display and is not part of this headless suite.


Examples

TBD


Roadmap

  • VS Code integration is coming soon.
  • AI repository instructions are available in the repository root at ../../.github/copilot-instructions.md.
  • GitHub Actions integration is coming soon.
  • GitHub Actions overview plan:
    • Phase 1: repository checks (lint/format checks and basic documentation validation).
    • Phase 2: automated test execution (WinCC OA test runs and result publishing).
    • Phase 3: release packaging of the final WinCC OA subproject artifact.
    • Phase 4: publish package through standard GitHub Releases.
    • Phase 5: publish built help in two targets: inside the package for local use and on GitHub Pages from the latest main branch.

Contributing

Code Style

TBD

Code coverage

TBD

Documentation


License

MIT License. See ../../LICENSE.

Limitation

Only WinCC OA shapes are possible to record / re-play. That means no file-selector, printers ... can be recorded.

Do not ...

  • Do not use **:** in the panel name, otherwise it is not possible to address the shape (moduleName.panelName:shapeName).
  • Do not use empty shape name, otherwise it is not possible to address the shape (moduleName.panelName:shapeName).
  • Use unique shape name, otherwise you will have conflict in the Tab shape
  • Do not use random generated module, shape and panel names, otherwise the player can not address the shape.

Best practice

  • Create smaller test cases instead of complex long duration tests. It will help you for analysis and you does not need to record whole scenario, when something changes


Made with ❤️ for and by the WinCC OA community