class SenderTestRunner(FeedsTestRunner): def __init__(self, sender): self._sender = sender self._messageSet = MessageSet(MESSAGE_SET_FILE, EXTRACT_MSG_RE) FeedsTestRunner.__init__(self) def __call__(self): t1Ms = time.time() * 1000 doTest = Test(1, "Send message").wrap(self._doTest) doTest() if sleepTime > 0: # Adjust sleep time based on test time adjustedSleeptime = sleepTime - ((time.time() * 1000) - t1Ms) grinder.sleep(long(adjustedSleeptime)) def _doTest(self): msg = self._messageSet.next() msgId = self._getMessageId(msg) msg = self._insertMessageId(msgId, msg) sentT = time.time() * 1000 self._sender.send(msg + '\n') self._messageStore.set(msgId, sentT) def _insertMessageId(self, msgId, message): msgIdStr = "||MSG_ID=%s||" % msgId return re.sub(INSERT_ID_RE, msgIdStr, message) def _getMessageId(self, message): """Create a message ID based on the agent, process, thread and run number. This should be unique across multiple test clients.""" msgIdInts = [ grinder.agentNumber, grinder.processNumber, grinder.threadNumber, grinder.runNumber ] msgIdStrs = map(lambda item : str(item), msgIdInts) return ''.join(msgIdStrs)
def __init__(self, sender): self._sender = sender self._messageSet = MessageSet(MESSAGE_SET_FILE, EXTRACT_MSG_RE) FeedsTestRunner.__init__(self)