# Robot framework Listeners

**URL:** <https://forum.robotframework.org/t/robot-framework-listeners/7026>\
**Category:** Robot Framework\
**Created:** [18 March 2024 14:07 UTC](https://forum.robotframework.org/t/robot-framework-listeners/7026 "2024-03-18T14:07:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Louay](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@Louay](https://forum.robotframework.org/u/Louay)\
**Post date:** [18 March 2024 14:07 UTC](https://forum.robotframework.org/t/robot-framework-listeners/7026/1 "2024-03-18T14:07:41Z")

</div>

i am developing a server that receives a request about specifications on a robot framework tests runs them and sends back the step responses in a stream to the client to render them , i want to be able to get the step execution status through listeners since i can’t interrupt the execution is there any event that lets me do that i am using GRPCto handle client server communication  
thanks in advance

---

<div class="post-metadata">

**Author:** ![damies13](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.robotframework.org/damies13/32/623_2.png) [@damies13](https://forum.robotframework.org/u/damies13)\
**Post date:** [18 March 2024 14:38 UTC](https://forum.robotframework.org/t/robot-framework-listeners/7026/2 "2024-03-18T14:38:19Z")

</div>

Hi Louay,

As was mentioned in the other thread, you use listeners to listen to robot framework and then run something.

As for gRPC, there is a python module for that (see [Quick start | Python | gRPC](https://grpc.io/docs/languages/python/quickstart/))

If you’re worried about the time the listener takes to run between keywords interfering with the execution time of the test then use [threading](https://docs.python.org/3/library/threading.html#module-threading). Gather the data you need from the executed keyword and pass that to a function in another thread that makes the gRPC calls to send the data

This is how the listener for rfswarm works, it grabs the keyword result and execution time, passes that to a function that runs in a background thread to send that result to the rfswarm manager with some retry handling if it fails to send, meanwhile the robot script continues in the main thread of the process. rfswarm uses the python requests module rather than the grpcio module to send the data, but otherwise it’s doing the same thing.

Hope that helps,

Dave.

---

<div class="post-metadata">

**Author:** ![Louay](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@Louay](https://forum.robotframework.org/u/Louay)\
**Post date:** [19 March 2024 05:42 UTC](https://forum.robotframework.org/t/robot-framework-listeners/7026/3 "2024-03-19T05:42:07Z")

</div>

thank you very much Dave people like you who are kind and take some of their time to guide beginners are a blessing
