Добрый день! Я новичок в нагрузочном тестировании, у меня возникла проблема и я совсем не знаю куда копать. Теперь к делу:
Провожу нагрузочный тест программки, которая передает данные с сервером по TCP (бинарные коды). При попытке записать данное с Jmeter оказалось, что прокси Jmeter'a модифицирует трафик, что не позволяет серверу адекватно его воспринимать и, как следствие, вылезает ошибка, еще больше ситуацию усугубляет то, что приложение не стабильно работает через проски-соединение, предпочтительнее socket.
Было принято решение использовать The Grinder, который позволяет записать TCP трафик, при этом делая remote port, что означает, что мы можем использовать socket при этом, записывая трафик. Проблема заключая в том, что после настройки всего и вся в консоли record'a grinder начинает писать ошибку:
"call setGrinderEnv.cmd
java -cp %CLASSPATH% net.grinder.TCPProxy -console -http -remotehost (server) -remoteport (port) -localport 8001 > grinder.py"
Error in console:
"C:\grinder>call setGrinderEnv.cmd
C:\grinder>set GRINDERPATH=C:\grinder
C:\grinder>set GRINDERPROPERTIES=C:\grinder\grinder.properties
C:\grinder>set CLASSPATH=C:\grinder\lib\grinder.jar;C:\grinder\lib\grinder.jar;
C:\grinder>java -cp C:\grinder\lib\grinder.jar;C:\grinder\lib\grinder.jar; net.g
rinder.TCPProxy -console -http -remotehost (server) -remoteport (port) -loca
lport 8001 1>grinder.py
15:46:25.215 [main] INFO : Initialising as a TCP port forwarder with the paramet
ers:
Request filters: HTTPRequestFilter
Response filters: HTTPResponseFilter
Local address: localhost:8001
Remote address: (server):(port)
15:46:26.067 [main] INFO : Engine initialised, listening on port 8001
15:46:37.789 [Filter thread for (server):(port)] ERROR: UNE
XPECTED - No current request"
И надпись с фильтром повторяет большое кол-во раз.
Вот мои параметры записи
"call setGrinderEnv.cmd
java -cp %CLASSPATH% net.grinder.TCPProxy -console -http -remotehost (server) -remoteport (port) -localport 8001 > grinder.py"
После этого в grinder.py:
"# The Grinder 3.11
HTTP script recorded by TCPProxy at 30.09.2015 15:46:25from net.grinder.script import Test
from net.grinder.script.Grinder import grinder
from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest
from HTTPClient import NVPair
connectionDefaults = HTTPPluginControl.getConnectionDefaults()
httpUtilities = HTTPPluginControl.getHTTPUtilities()
def createRequest(test, url, headers=None):
"""Create an instrumented HTTPRequest."""
request = HTTPRequest(url=url)
if headers: request.headers=headers
test.record(request, HTTPRequest.getHttpMethodFilter())
return request
class TestRunner:
"""A TestRunner instance is created for each worker thread."""
def call(self):
"""Called for every run performed by the worker thread."""
# Empty recording!
pass"
Вот собственно и все. С чем может быть связанна данная ошибка? Или может быть есть какие то другие способы записать и воспроизвести подобный трафик? Заранее спасибо за ответ!