Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 5066-й день

 Bash скрипт для теста сайта, время выполнение запросов

follet
Oct 29 2019, 10:19
  
Пост #1



Репутация:   5  
Активист
*

Группа: Пользователи
Сообщений: 224
С нами с: 19-March 06


Добрый день.

Есть сайт, на сайте есть списки данных. Мне необходимо провести стресс-тест следующего рода: при каком количестве пользователей, следующему будет список отображаться уже с некомфортным ожиданием - 3 сек например. В связи с тем, что сайт работает на амазоне, и там автоскалинг групп, и сайт "положить" скорее всего будет очень тяжело, больше интерес к оптимизации фронта и бека. Я программирование не изучал, но мне сказали, что это можно реализовать через Bash - Curl например отправить один запрос, посчитать время до ответа, потом отправить 2 запроса и до тех пор, пока например ответ не будет віполнен за 3-5 сек. Как я понимаю там тоже есть циклы и т.д.

Подскажите, как это можно проще реализовать?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов(1 - 9)
silenx
Oct 29 2019, 10:45
  
Пост #2



Репутация:   -7  
Дух


Группа: - Пользователи -
Сообщений: 72
С нами с: 1-April 19


(follet @ Oct 29 2019, 10:19) Перейти к цитате

Добрый день.

Есть сайт, на сайте есть списки данных. Мне необходимо провести стресс-тест следующего рода: при каком количестве пользователей, следующему будет список отображаться уже с некомфортным ожиданием - 3 сек например. В связи с тем, что сайт работает на амазоне, и там автоскалинг групп, и сайт "положить" скорее всего будет очень тяжело, больше интерес к оптимизации фронта и бека. Я программирование не изучал, но мне сказали, что это можно реализовать через Bash - Curl например отправить один запрос, посчитать время до ответа, потом отправить 2 запроса и до тех пор, пока например ответ не будет віполнен за 3-5 сек. Как я понимаю там тоже есть циклы и т.д.

Подскажите, как это можно проще реализовать?

у вас изначально в терминах путаница, "сайт" - из носа выковырян.есть url(locator) и uri(identificator), определитесь: куда вам? к умным или к красивым? потом и спрашивайте ok.png p.s. положат, даже не дышите, всё горит, звёзды бывают чёрные дыры b.png

Сообщение отредактировал silenx - Oct 29 2019, 11:14
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
follet
Oct 29 2019, 11:47
  
Пост #3



Репутация:   5  
Активист
*

Группа: Пользователи
Сообщений: 224
С нами с: 19-March 06


(silenx @ Oct 29 2019, 10:45) Перейти к цитате

у вас изначально в терминах путаница, "сайт" - из носа выковырян.есть url(locator) и uri(identificator), определитесь: куда вам? к умным или к красивым?


Конечно к умным и красивым 2 в 1 )
URL отправлять запрос методом GET
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
follet
Oct 29 2019, 12:16
  
Пост #4



Репутация:   5  
Активист
*

Группа: Пользователи
Сообщений: 224
С нами с: 19-March 06


единичный запрос выглядит вот так:
CODE Format
$ curl -s -w %{time_total}\\n -o /dev/null https://musite.ua/userapi/installationList

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
follet
Oct 29 2019, 14:16
  
Пост #5



Репутация:   5  
Активист
*

Группа: Пользователи
Сообщений: 224
С нами с: 19-March 06


с командой, которая выдаёт мне нужный результат я разобрался, вопрос открыт т.к. мне теперь нужно этот запрос запустить например 10 раз, при этом не последовательно, а сразу, ну или 10 раз за 1 секунду, как это можно реализовать в bash?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
silenx
Oct 29 2019, 14:40
  
Пост #6



Репутация:   -7  
Дух


Группа: - Пользователи -
Сообщений: 72
С нами с: 1-April 19


(follet @ Oct 29 2019, 14:16) Перейти к цитате

с командой, которая выдаёт мне нужный результат я разобрался, вопрос открыт т.к. мне теперь нужно этот запрос запустить например 10 раз, при этом не последовательно, а сразу, ну или 10 раз за 1 секунду, как это можно реализовать в bash?

падает комета на землю, остаются два инопланетных вируса, один говорит:"что-то, бля, холодно!" второй: "НИЧЕГО, надышим!"

Сообщение отредактировал silenx - Oct 29 2019, 14:53
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
follet
Oct 29 2019, 16:19
  
Пост #7



Репутация:   5  
Активист
*

Группа: Пользователи
Сообщений: 224
С нами с: 19-March 06


Мне нравится юмор, по этому поделюсь дальнейшими успехами, но возможно рассчитываю на дополнительные рекомендации:
CODE Format

#!/bin/bash
i=0;
for i in {1..11};
do curl -H "Authorization: Bearer MyToken" -s -w  'time:\t%{time_total}\n' -o /home/it/Documents/overload-folder/result.txt https://site.ua/userapi/installationList & i=$(($i+1));
done
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Белкин
Nov 11 2019, 23:18
  
Пост #8



Репутация:   57  
Активист
*

Группа: Пользователи
Сообщений: 220
С нами с: 31-October 09


попробуйте apache benchmark, запускается одной командой.
Например: ab -k -c 50 -n 1000 18.130.244.45/ (1000 запросов, по 50 запросов одновременно)
User is online!Profile CardPM
Go to the top of the page
+Quote Post
-RC-
Dec 2 2019, 16:27
  
Пост #9



Репутация:   424  
bifurcated person
*****

Группа: Пользователи
Сообщений: 6 519
С нами с: 24-December 08


через curl будет сложно дать нагрузку.
лучше что-то типо gatling, оно даст максимальную нагрузку более эффективно утилизируя все ядра процессора.
но лучший стресс тест - это распределенная система, которая не даст реверс проксям включить рейт лимиты или по хеш функции выдавать с кэша результат.

это дорого, но более приближенно к истине.

ну и счет за ELB может стоит эгегей.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KONYAKA
Dec 5 2019, 20:44
  
Пост #10



Репутация:   20  
Активист
*

Группа: Пользователи
Сообщений: 263
С нами с: 18-March 09


https://loader.io
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 28th January 2020 - 8:31
Сайт не предоставляет электронные версии произведений, а занимается лишь коллекционированием и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями. Если вы являетесь правообладателем какого-либо представленного материала и не желаете чтобы ссылка на него находилась в нашем каталоге, свяжитесь с нами и мы удалим её. Файлы для обмена предоставлены пользователями сайта.