{"repo":"palkan/wsdirector","free":true,"listed":false,"github":"https://github.com/palkan/wsdirector","clone":"git clone https://github.com/palkan/wsdirector.git","description":"All the world's a server, and all the men and women merely clients","language":"Ruby","stars":107,"topics":["cli","websockets","actioncable","testing"],"license":"MIT","category":"cli-tools","readme_excerpt":"WebSocket Director Command line tool for testing WebSocket servers using scenarios. Suitable for testing any websocket server implementation, like Action Cable, AnyCable, Phoenix Channels, GraphQL WS and so on. 📖 Read also WebSocket Director: scenario-based integration tests for realtime apps Installation Install CLI: Or use WebSockets Director as a library (see below for intructions): Usage Create YAML file with simple testing script: and run it with this command: You can also use positional arguments: You can create more complex scenarios with multiple client groups: Run with scale factor: The simpliest scenario is just checking that socket is succesfully connected: Run with loop option: By default, receive action expects the exact data match. In some cases, it's useful to only match the specified keys (inclusion). For that, you can use data field instead: Also you can pass a JSON file with some testing scripts: or pass a JSON scenario directly to the CLI without creating a file: Type wsdirector --help to check all commands. Receive order By default, the receive action scans through all available or newly added message to find a matching one. If you want to check the order of incoming messages, add the ordered: true option to the receive action. Connection configuration You can specify client's headers, cookies or query string params via the connection options directive: NOTE : Query string params could also be passed as a part of the URL. Specifying them in the scenario a","default_branch":null,"files":null,"tree":[],"storefront":"/r/palkan","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/palkan/wsdirector/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}