Testing ******* The following sections explain how to unit test LinuxForHealth connect and load test the LinuxForHealth ecosystem. Required Software ================= Make sure you have the required software installed from `Developer Setup <../developer-setup.html>`_. To run the load tests you'll also need to install `locust `_:: pip install locust Run Unit Tests ============== LinuxForHealth connect uses pytest for unit testing. To run the unit tests, run pytest from the root directory of connect:: pipenv run pytest Run Load Tests ============== Example 1 --------- To run the load tests, make sure you have a LinuxForHealth environment running (see `Developer Setup <../developer-setup.html>`_ for instructions), then run the load tests from the connect/load-test directory:: cd load-test locust --host https://localhost:5000 --run-time 5m --users 500 --spawn-rate 20 --headless This set of steps runs the default load test defined by the connect/load-test/locustfile.py. You can adjust the length of the test (--run-time), the number of simulated concurrent users (--users) and rate at which those users are added to the test (--spawn-rate). Furthermore, you can adjust which endpoints are tested by adding/removing endpoints from locustfile.py. See the `locust documentation `_ for additional load test configuration options. Example 2 --------- The default load test POSTs to the /fhir endpoint using randomly selected FHIR resources from connect/load-test/messages/fhir[1...NUM_FILES].json files. You can replace the contents of these fhir*.json files with your own FHIR resources or add fhir resource files to connect/load-test/messages using the same naming convention. To separate FHIR resources, place them in separate files. To change the number of files used by the load test (default = 2):: NUM_FILES=1 locust --host https://localhost:5000 --run-time 5m --users 500 --spawn-rate 20 --headless In the test output, you will see that only the first of the two sample fhir messages is loaded:: Loading message file = ./messages/fhir1.json Example 3 --------- To use the locust UI to run load tests, run locust from the command line:: locust --host https://localhost:5000 then point your browser to http://127.0.0.1:8089 to run the test, specifying the number of users and spawn rate via the UI.