Я хотел бы одновременно имитировать соединения тысяч клиентов на моем сервере, чтобы узнать, может ли он справиться с этим? Я просто пытаюсь использовать мой симулятор iPhone и iPhone для создания соединений, но это не симуляция в реальном времени. Как я могу выполнить нагрузочный тест?Как загрузить тестовое приложение на основе clis/server redis, twisted and iPhone
Вот пример моего кода сервера:
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import defer
class STSFactory(Factory):
def __init__(self,conn):
self.conn = conn
self.protocol = STSProtocol
class STSProtocol(Protocol):
def log(self, message):
print "%s: %s" % (self, message)
def connectionMade(self):
self.log("Connection made")
def connectionLost(self, reason):
self.factory.clients.remove(self)
self.log("Connection Lost")
@defer.inlineCallbacks
def getUser(self,user):
val = yield self.factory.conn.hgetall("user:%s"%user)
def dataReceived(self, data):
cmd = data.split(':')
command = cmd[0]
arg1 = cmd[1]
arg2 = cmd[2]
if arg1 == "logon":
self.getUser(arg2)
if __name__ == '__main__':
from twisted.internet import reactor
import redis
conn = redis.Redis(unix_socket_path='/tmp/redis.sock')
factory = STSFactory(conn)
factory.clients = []
print "Server started"
reactor.listenTCP(11000,factory)
reactor.listenTCP(11001,factory)
reactor.listenTCP(11002,factory)
reactor.run()
Где вы застряли? Ответ на заданный вами вопрос: «Как загрузить тестовое приложение с тысячами клиентов?» ответил «Ударив его тысячами клиентов и измеряя, что происходит». Если вам нужен более подробный или конкретный ответ, вам нужно задать более подробный и конкретный вопрос. Альтернатива, если кто-то создаст приложение для тестирования нагрузки для вас в SO-ответе, вряд ли произойдет. –
Я не прошу кого-нибудь написать мне тестовое приложение. Мне интересно, как загрузить сервер, прежде чем идти в производство, чтобы увидеть, будет ли он обрабатывать нагрузку или нет. Я пытаюсь загрузить систему с помощью симулятора iPhone, и я не верю, что это правильный путь. Мне просто интересно, есть ли какое-либо программное обеспечение или инструменты, которые можно использовать, спрашивая опытных людей. – Bora