.. _quickstart: Quickstart ========== Let's put it all together and run an automated end-to-end functional test! You'll need the following for this quickstart tutorial: * Account on Knilb * Laptop with :mod:`knilb` * Raspberry Pi with ExplorerHAT Pro as an Automated Test Equipment * Raspberry Pi with AutomationHAT as a Device Under Test Start the Automated Test Equipment ---------------------------------- The Pimoroni ExplorerHAT Pro provides easy access to the GPIO pins. For example, wires to connect the GPIO digital input pins to output relays on a Device Under Test. Let's SSH from the laptop into the RaspberryPi with Pimoroni ExplorerHAT Pro and start an ATE:: pi@raspberrypi:~/try-pimo $ source venv/bin/activate (venv) pi@raspberrypi:~/try-pimo $ pimo ate :mod:`pimoscope` automatically detects the ExplorerHAT. The ExplorerHAT Pro must be present. :mod:`pimoscope` starts a web app with a simple RESTful :ref:`apiate` to inspect the digital input lines on the Pimoroni ExplorerHAT Pro. Let's use a different laptop terminal to inspect the RESTful resources on the RaspberryPi:: $ curl http://:8080/ate/input {'four': 0, 'three': 0, 'two': 0, 'one': 0} Start the Device Under Test --------------------------- The Pimoroni AutomationHAT provides convenient hardware to prototype and demo an actuator using its builtin electromechanical relays and output pins. Let's SSH from the laptop into into the RaspberryPi with Pimoroni AutomationHAT and start a DUT:: pi@raspberrypi:~/try-pimo $ source venv/bin/activate (venv) pi@raspberrypi:~/try-pimo $ pimo dut :mod:`pimoscope` automatically detects the AutomationHAT. The AutomationHAT must be present. :mod:`pimoscope` starts a web app with a simple RESTful :ref:`apidut` to control each individual (of three) relays. RESTful resources return the software-defined logics relay states. The **logical** response by the application software can be validated with the **physical** response from Automated Test Equipment. Let's use a different laptop terminal to inspect the RESTful resources on the RaspberryPi:: # READ RELAY STATE $ curl http://:8080/dut/relay {"three": false, "two": false, "one": false} # SET RELAY STATE $ curl -H "Content-Type: application/json" -X POST -d '{"state": 1}' http://:8080/dut/relay/one {"state": true, "relay": "one"} Prepare the Cloud Service ------------------------- On the Cloud Service let's create each **step** shown below, then create a **case** and **plan**. Finally, create the **deployment** making sure to specify the correct URL each RaspberryPi. ===================== ================== =============== Knilb > Create > Step My Step 1 My Step 2 ===================== ================== =============== Description Activate Relay One Sense Relay One Location DUT ATE Endpoint relay/one ate/input After 0 0 Command state Condition Is True Is True Parameter state one Value true true ===================== ================== =============== Launch the Agent ---------------- Let's use a laptop terminal to launch the :mod:`knilb`. Replace ```` with the API Passkey from your account on the Cloud Service.:: $ knilb http://app.knilb.com -v -s Get Test Results ---------------- Congratulations! Let's check out the test results on the Cloud Service.