# record and replay

Published articles for record and replay.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## No Lab, No Problem: Record CML2 Devices into pyATS Mocks for CI

DevFeed: [No Lab, No Problem: Record CML2 Devices into pyATS Mocks for CI](<https://devfeed.tech/articles/no-lab-no-problem-record-cml2-devices-into-pyats-mocks-for-ci-30873.md>)

Original publisher: [Read original article](<https://brent.leekley.me/blog/record-once-test-forever/>)

Author: Brent Leekley

Published: 2026-06-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [brent.leekley.me blog](<https://devfeed.tech/sources/brent-leekley-me-blog.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [cisco-modeling-labs](<https://devfeed.tech/tags/cisco-modeling-labs.md>), [cml](<https://devfeed.tech/tags/cml.md>), [cml2](<https://devfeed.tech/tags/cml2.md>), [genie](<https://devfeed.tech/tags/genie.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [mock-devices](<https://devfeed.tech/tags/mock-devices.md>), [network-automation](<https://devfeed.tech/tags/network-automation.md>), [network-testing](<https://devfeed.tech/tags/network-testing.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [playback](<https://devfeed.tech/tags/playback.md>), [pyats](<https://devfeed.tech/tags/pyats.md>), [record-and-replay](<https://devfeed.tech/tags/record-and-replay.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unicon](<https://devfeed.tech/tags/unicon.md>)

### AI overview

This tutorial explains how to record responses from real Cisco Modeling Labs 2 devices with pyATS and unicon, commit the recordings, and replay the same test suite in GitHub Actions. Replay allows the tests to run offline without booting or connecting to the lab.

### Source excerpt

Develop against the live CML2 lab, then record it once with unicon playback and replay the exact same pyATS suite in GitHub Actions with no lab to license or reach. Point the testbed at an unreachable address and the suite still passes, because replay never opens a socket. Includes a real companion repo with a green Actions run. Fourth in a pyATS + CML2 network programmability series.