# ecoding=utf-8 import socket import time class RobotListener3(object): ROBOT_LIBRARY_SCOPE = 'GLOBAL' ROBOT_LISTENER_API_VERSION = 3 ## robot --listener Listener:50007:false def __init__(self): self.sock = socket.socket() self._connect() def _close(self): self.sock.close() def _connect(self): self.conn = self.sock.connect(("127.0.0.1", 50007)) self._send_socket(b"connecting ........ OK") def start_suite(self, data, result): self._send_socket("Starting Suite : " + str(data) + str(result)) def start_test(self, data, result): ## tags = ''.join(attrs['tags']) self._send_socket("Starting test : " + str(data) + str(result)) def start_keyword(self, name, attrs): self._send_socket('Executing start keyword %s with arguments %s' % (name, attrs['args'])) def end_keyword(self, name, attrs): self._send_socket('Executing end keyword %s with arguments %s' % (name, attrs['args'])) def end_test(self, data, result): if not result.passed: self._send_socket('Test "%s" failed: %s' % (result.name, result.message)) else: self._send_socket('Test "%s" PASS: %s' % (result.name, result.message)) def end_suite(self, data, result): if not result.passed: self._send_socket('Ending suite "%s" failed: %s' % (result.name, result.message)) else: self._send_socket('Ending suite "%s" PASS: %s' % (result.name, result.message)) def _send_socket(self, msg): str(msg).replace(u'\xa0', u' ') data = ('%s' % msg).encode("gbk") try: self.sock.sendall(data) except Exception: self._close() self._connect() def log_file(self, path): self._send_socket('log_file available at %s' % path) def report_file(self, path): self._send_socket('report_file available at %s' % path) def xunit_file(self, path): self._send_socket('xunit_file available at %s' % path) def debug_file(self, path): self._send_socket('debug_file available at %s' % path) def close(self): self._send_socket('All tests executed---close') self._close() def message(self, message): self._send_socket(str(message)) def log_message(self, message): self._send_socket(str(message))