Тестовый запрос. локальный тестовый сервер nc one-liner

Для замеров производительности использовалось три запроса, представляющих три наиболее типичные проблемные рассчёты. Ниже приведены эти запросы на языке DQL, используемом в Doctrine. DQL позволяет неявно описывать критерии операции JOIN внутри WHERE. Все запросы Doctrine обрабатывает как prepared statement, то есть синтаксический разбор аналогичных DQL и SQL не происходит повторно.

testRegistrationCount

Подсчёт количества регистраций у организатора -- самый простой запрос. Здесь только один джойн, покрытый индексами.

SELECT count(r.id) from Registration r, r.Event e WHERE e.organization_id = ?;

testIncome

Подсчёт дохода организатора -- сумма всех выплаченных посетителями сумм. Почти то же самое, но уже нужно не считать ряды, а суммировать.

SELECT sum(r.sum) from Registration r, r.Event e WHERE e.organization_id = ?;

testRegCountByPartner

Подсчёт регистраций организатора, привлечённых определенным партнером. Более сложный запрос с двумя джойнами. Также представляет повышенную сложность и для StatMetric, так как использует «двойной срез».

SELECT count(r.id) from Registration r, r.Event e, r.Campaign c WHERE e.organization_id = ? and c.partner_id = ?;

Для меня важно, чтобы он показывал IP-адрес реквестера, что полезно, когда вам нужно присваивать белый список IP-адресу, но не уверен, что это такое.

Мне нужен живой тестовый сервер, который принимает мои запросы на базовую информацию через HTTP GET, а также позволяет мне POST (даже если это действительно ничего не делает). Это целиком для тестирования.

Curl --request POST \ --url https://postman-echo.com/post \ --data "This is expected to be sent back as part of response body."

{"args":{},"data":"","files":{},"form":{"This is expected to be sent back as part of response body.":""},"headers":{"host":"postman-echo.com","content-length":"58","accept":"*/*","content-type":"application/x-www-form-urlencoded","user-agent":"curl/7.54.0","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":{"...

Это желание недоступно. Ниже приведены доступные пожелания: ["приложение", "args", "authorization", "blueprint", "charset", "close", "cookies", "data", "date", "endpoint", "environ "", "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "схема", "мелкий", "поток", "url", "values"]

{"wsgi.multiprocess": False, "HTTP_COOKIE": "csrftoken = YFKYYZl3DtqEJJBwUlap28bLG1T4Cyuq", "SERVER_SOFTWARE": "Werkzeug / 0.12.2", "SCRIPT_NAME": "", "REQUEST_METHOD": "GET", "PATH_INFO": " "/ method / environ", "SERVER_PROTOCOL": "HTTP / 1.1", "QUERY_STRING": "", "werkzeug.server.shutdown":, "HTTP_USER_AGENT": "Mozilla / 5.0 (Windows NT 6.1, WOW64) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 54.0.2840.71 Safari / 537.36 "," HTTP_CONNECTION ":" keep-alive "," SERVER_NAME ":" 127.0.0.1 "," REMOTE_PORT ": 49569," wsgi.url_scheme ":" http "," SERVER_PORT ":" 5000 "," werkzeug.request ":," wsgi.input ":," HTTP_HOST ":" 127.0.0.1:5000 "," wsgi.multithread ": False," HTTP_UPGRADE_INSECURE_REQUESTS ":" 1 "," HTTP_ACCEPT ":" text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, / ; q = 0.8 "," wsgi.version ": (1, 0)," wsgi.run_once ": False," wsgi.errors ":", mode "w" в 0x0000000002042150>, "REMOTE_ADDR": "127.0.0.1", "HTTP_ACCEPT_LANGUAGE": "en-US, en; q = 0.8", " HTTP_ACCEPT_ENCODING ":" gzip, deflate, sdch, br "}

локальный тестовый сервер nc one-liner

Настройте локальный тестовый сервер в одной строке под Linux:

While true; do printf "" | nc -l localhost 8000; done

Создатель запроса образца на другой оболочке:

Wget http://localhost:8000

то в первой оболочке вы увидите появившийся запрос:

GET / HTTP/1.1 User-Agent: Wget/1.19.4 (linux-gnu) Accept: */* Accept-Encoding: identity Host: localhost:8000 Connection: Keep-Alive

nc широко доступен и предварительно установлен на Ubuntu.

Протестировано на Ubuntu 18.04.



HTTP-сервер тестирования, принимающий запросы GET/POST (9)

Webhook Tester - отличный инструмент: https://webhook.site (GitHub)

Для меня важно, чтобы он показывал IP-адрес реквестера, что полезно, когда вам нужно присваивать белый список IP-адресу, но не уверен, что это такое.

Мне нужен живой тестовый сервер, который принимает мои запросы на базовую информацию через HTTP GET, а также позволяет мне POST (даже если это действительно ничего не делает). Это целиком для тестирования.

Curl --request POST \ --url https://postman-echo.com/post \ --data "This is expected to be sent back as part of response body."

{"args":{},"data":"","files":{},"form":{"This is expected to be sent back as part of response body.":""},"headers":{"host":"postman-echo.com","content-length":"58","accept":"*/*","content-type":"application/x-www-form-urlencoded","user-agent":"curl/7.54.0","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":{"...

Это желание недоступно. Ниже приведены доступные пожелания: ["приложение", "args", "authorization", "blueprint", "charset", "close", "cookies", "data", "date", "endpoint", "environ "", "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "схема", "мелкий", "поток", "url", "values"]

{"wsgi.multiprocess": False, "HTTP_COOKIE": "csrftoken = YFKYYZl3DtqEJJBwUlap28bLG1T4Cyuq", "SERVER_SOFTWARE": "Werkzeug / 0.12.2", "SCRIPT_NAME": "", "REQUEST_METHOD": "GET", "PATH_INFO": " "/ method / environ", "SERVER_PROTOCOL": "HTTP / 1.1", "QUERY_STRING": "", "werkzeug.server.shutdown":, "HTTP_USER_AGENT": "Mozilla / 5.0 (Windows NT 6.1, WOW64) AppleWebKit / 537.36 (KHTML, например, Gecko) Chrome / 54.0.2840.71 Safari / 537.36 "," HTTP_CONNECTION ":" keep-alive "," SERVER_NAME ":" 127.0.0.1 "," REMOTE_PORT ": 49569," wsgi.url_scheme ":" http "," SERVER_PORT ":" 5000 "," werkzeug.request ":," wsgi.input ":," HTTP_HOST ":" 127.0.0.1:5000 "," wsgi.multithread ": False," HTTP_UPGRADE_INSECURE_REQUESTS ":" 1 "," HTTP_ACCEPT ":" text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, / ; q = 0.8 "," wsgi.version ": (1, 0)," wsgi.run_once ": False," wsgi.errors ":", mode "w" в 0x0000000002042150>, "REMOTE_ADDR": "127.0.0.1", "HTTP_ACCEPT_LANGUAGE": "en-US, en; q = 0.8", " HTTP_ACCEPT_ENCODING ":" gzip, deflate, sdch, br "}

локальный тестовый сервер nc one-liner

Настройте локальный тестовый сервер в одной строке под Linux:

While true; do printf "" | nc -l localhost 8000; done

Создатель запроса образца на другой оболочке:

Wget http://localhost:8000

то в первой оболочке вы увидите появившийся запрос:

GET / HTTP/1.1 User-Agent: Wget/1.19.4 (linux-gnu) Accept: */* Accept-Encoding: identity Host: localhost:8000 Connection: Keep-Alive

nc широко доступен и предварительно установлен на Ubuntu.

Протестировано на Ubuntu 18.04.