There's a zuul gate that will listen to any jobs on gerrit and based on a predefined set of rules call jobs on a jenkins server

jenkins then takes care through it's jobs of deploying the whole environment, running the test, collecting them, uploading them to a public web server and sending back to zuul the job result (success / failure)
based on that zuul reports to the upstream gerrit the result using predefined message templates for success and for failure