Skip to content

Getting Started

Five paths, pick one. Each routes you to a passing test, a running server, or both — without reading every page first.

Pick a path

Answer one question: what runs your tests today?

  • Pytest, against a Remote Lab Manager you can already reachRun your first test. Ten minutes, three lines of test code.
  • You’re a Neops dev using the Worker SDKPlug into Worker SDK. Two-step setup, then the Worker SDK testing guide takes over.
  • Pytest, but you don’t have a server to point atRun locally, then return to Run your first test from step 3.
  • Anything else — Go, Robot Framework, shell, your own harnessDrive from cURL. Six cURL calls end-to-end; no Python required.
  • You’re wiring this into CIWire into CI. Env vars, runner pipeline tabs, queue tuning.
  • You operate the lab host (not just consume it) → skip Get started. Begin at Netlab host setup.

In this section

  •   Run your first test


    Install neops-remote-lab, set REMOTE_LAB_URL, write a minimal topology, declare a remote_lab_fixture, run pytest. Ten minutes, three lines of test code.

  •   Plug into Worker SDK


    For Neops dev teams using the Worker SDK. Two-step setup, then the Worker SDK testing guide takes over with function-block-test patterns.

  •   Run locally


    Don’t have a remote VM yet? Install Netlab + Containerlab rootless on Ubuntu and run the server on localhost:8000. Point your tests at it; resume the test guide.

  •   Drive from cURL


    Drive the lab end-to-end with cURL — six calls, any HTTP-capable stack. The pytest fixture and Python client wrap exactly this lifecycle.

  •   Wire into CI


    Wire the lab into GitHub Actions, GitLab CI, or Jenkins — env-var setup, runner pipeline tabs, VPN connectivity, queue-tuning pointers.

  • Pytest Fixtures — the stable public API in full: factory arguments, the remote_lab_client session fixture, the one-fixture-per-test rule.
  • Architecture — how the server, LabManager, and client cooperate; useful before you start debugging queue or lifecycle behaviour.
  • Topology Format — the .yml/.yaml extension rule and the extra_files multipart contract.
  • Cookbook — runnable examples for pytest, Python, cURL, topologies, and deployment.

If you are standing up a production Remote Lab Manager host (not just a local dev server), start instead with Netlab host setup and Headscale: quick (the recommended network enclosure — that page also covers alternatives).