Добрый день!

Подскажите пожалуйста, как правильно создать тесты JMeter с авторизацией? Есть тест, подключен элемент HTTP Cookie Manager.

Первым запросом (PATH = /ServiceModel/AuthService.svc/Login) хочу получить куки авторизации, результат запроса их возвращает, то есть как я понимаю сама авторизация проходит успешно:

 

HTTP/1.1 200 OK

Cache-Control: private

Transfer-Encoding: chunked

Content-Type: application/json; charset=utf-8

Location: /0

Server: Microsoft-IIS/10.0

Set-Cookie: BPMLOADER=iy5zrxlw22cxmf5jc1ngffvg; path=/; HttpOnly

X-Terrasoft-UserCulture: ru-RU

X-AspNet-Version: 4.0.30319

Set-Cookie: .ASPXAUTH=5291546A43E87BC1D69F21BA9F892D97EA7E962B1EC230480794A698DA92A98861710A33B49262FC9AF5D944F8DC8BB65578792113850193C1DD712EDAFFD30BDD87D57E92CC2049145B5F9035CD0D8E208FC4F477A9F9F1775BDEB1285064F2D67655E5C62C247C3091913E4C38CE8E0A1E8B1B33156537EAF247619B1DAB509023C49F7D33BDC79A3966A37C232EE9A45CE8682B3C6B8D3A44FA1DC0F8916705631F0E56AA52A4BDA821A46EFBCD9562F47EB319A12874E376610FFF5AA35D321AD8068E586C537CCEEDFB7765014034417C121E742DC1B6E7EA096743806126F98070ACE29E34511ED56D7268B5D5AD5DFA9E0B370CB84408FF981C6BC8C7FA8B2B1462AE03BC30C82840068CB08B7A8C880B2210CF42B8A323908932E81F3A322CABDE5BFE593F08B7231D9FA97C37693BD128070AD464129378D2A3AC3A96E5FCB2995AF022DA592BABF97076C7C82E08DA2B0507645B902A6B4A9F9082D1658F1F; path=/; HttpOnly

Set-Cookie: BPMCSRF=14FAvqYvD2kXP3haj1tbKO; path=/

Set-Cookie: UserName=83|117|112|101|114|118|105|115|111|114; expires=Sun, 22-May-2022 08:17:11 GMT; path=/; HttpOnly

X-Powered-By: ASP.NET

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options: nosniff

Date: Fri, 22 Apr 2022 08:17:11 GMT

 

Далее по тесту доходит до запроса, которому требуется авторизация (PATH - /0/rest/CurrentUserService/GetCurrentUserHomePage ).

 

Хэдеры запроса:

POST <адрес сайта>/0/rest/CurrentUserService/GetCurrentUserHomePage

POST data:

{}

Cookie Data:

.ASPXAUTH=5291546A43E87BC1D69F21BA9F892D97EA7E962B1EC230480794A698DA92A98861710A33B49262FC9AF5D944F8DC8BB65578792113850193C1DD712EDAFFD30BDD87D57E92CC2049145B5F9035CD0D8E208FC4F477A9F9F1775BDEB1285064F2D67655E5C62C247C3091913E4C38CE8E0A1E8B1B33156537EAF247619B1DAB509023C49F7D33BDC79A3966A37C232EE9A45CE8682B3C6B8D3A44FA1DC0F8916705631F0E56AA52A4BDA821A46EFBCD9562F47EB319A12874E376610FFF5AA35D321AD8068E586C537CCEEDFB7765014034417C121E742DC1B6E7EA096743806126F98070ACE29E34511ED56D7268B5D5AD5DFA9E0B370CB84408FF981C6BC8C7FA8B2B1462AE03BC30C82840068CB08B7A8C880B2210CF42B8A323908932E81F3A322CABDE5BFE593F08B7231D9FA97C37693BD128070AD464129378D2A3AC3A96E5FCB2995AF022DA592BABF97076C7C82E08DA2B0507645B902A6B4A9F9082D1658F1F; BPMCSRF=14FAvqYvD2kXP3haj1tbKO; UserName=83|117|112|101|114|118|105|115|111|114; BPMLOADER=iy5zrxlw22cxmf5jc1ngffvg

 

Результат его исполнения выдает ошибку доступа (см. ниже). Что я делаю неправильно и как это можно исправить?

Отключать BPMCSRF для тестируемого сайта нельзя.

 









401 - Доступ запрещен: Используются недействительные учетные данные.


body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}

fieldset{padding:0 15px 10px 15px;} 

h1{font-size:2.4em;margin:0;color:#FFF;}

h2{font-size:1.7em;margin:0;color:#CC0000;} 

h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 

#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;

background-color:#555555;}

#content{margin:0 0 0 2%;position:relative;}

.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}

-->







Ошибка сервера



 

 

401 - доступ запрещен. Используются недействительные учетные данные.



 

Предоставленные учетные данные не дают права на просмотр этого каталога или страницы.



 




Нравится

1 комментарий

Добрый день, тут скорее ответ нужно искать в документации Jmeter.

Для примера нашёл эту статью http://justjmeter.blogspot.com/2012/04/blog-post.html

Показать все комментарии

Доброго дня! В рамках кейса по распределенному тестированию мы настроили соединение между jmeter-сервером и управляющим центром jmeter. Тесты на удаленном сервере запускаются с некоторой задержкой, а когда они завершаются, на управляющем центре не появляются результаты тестирования, и более того на управляющем центре тест зависает и не дает закрыть программу, хотя сервер уже закончил свою работу и написал сообщение об окончании тестирования. Столкнулись с тем, что тестирование на удаленном сервере по времени выполняется в несколько раз дольше, чем локально - нормально ли такое поведение? Также просьба подсказать, как нам запускать распределенное тестирование так, чтобы на управляющем центре появлялись все результаты? И какие настройки необходимо произвести, чтобы порт не менялся при каждом запуске jmeter? Может быть вы могли бы по опыту подсказать как нам настроить распределенное тестирование или с чем необходимо ознакомиться. Проанализировав проблему со своей стороны произвели следующие настройки в конфигурационном файле:

 

RMI_HOST_DEF=-Djava.rmi.server.hostname=OUR_IP_ADDRESS
server_port=1099
server.rmi.localport=1099
server.rmi.ssl.disable=true

 

Нравится

1 комментарий

Александр, добрый день!

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

Показать все комментарии

Добрый день. Сейчас через скрипт рекордер записываю действия и прогоняю по этому сценарию нагрузку. Вопрос у заказчика в другом, почему к примеру, при нагрузке в 600 пользователей не создаётся 600 тестовых обращений хотя по скрипту записано от и до. Авторизация в JMeter работает.

Нравится

1 комментарий

Думаю, заказчику лучше обратиться с вопросом к тому, кто разрабатывал сценарий. Без подробностей сложно сказать, что именно он делает в системе. Например, если каждый раз сохранять запись о новом обращении с одним и тем же Id (а при нормальной работе он уже есть в запросе к /0/DataService/json/SyncReply/InsertQuery), то не создастся много записей, а будут ошибки.

Показать все комментарии

Все знают одну особенность программистов – мы всегда хотим использовать лучшие инструменты, иметь самое быстрое железо и прорабатывать архитектуру так, чтобы быть готовыми вырасти в over900 раз за ночь. А если это еще и что-то новенькое, то бизнес вполне может получить под капотом MongoDB+Qt для задачи десктопного калькулятора.

Но давайте взглянем на это с точки зрения бизнеса – в каком случае действительно целесообразно использовать технологии высокой нагрузки и какие они вообще бывают?

Полный текст статьи с примерами нагрузки и описанием архитектуры решения Loyalty Creatio

Нравится

Поделиться

0 комментариев
Показать все комментарии

Часто клиенты требуют информацию о скорости работы, отказоустойчивости приложений Terrasoft при работе большого числа пользователей, при достаточно интенсивной работе.

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

Как проводилось тестирование

  1. Нагрузочное тестирование проводилось на конфигурации Novco в течение 10 минут
  2. 100 параллельных потоков стартовали с интервалом в 0,5 секунды и выполняли запросы вставки данных в БД (одновременная работа 100 пользователей)
  3. Каждый поток сначала выполнил запросы для соединения с Terrasoft (также как это делает пользователь при входе в Terrasoft)
  4. После входа каждый поток циклически выполнял следующие операции:
    • a. Добавление нового Контакта с типом клиент (поля ФИО, Фамилия, Имя, Отчество, Тип, Ответственный, Тип средства связи 1, Средство связи 1)
    • b. Добавление Карточного счета для этого контакта (Номер карточного счета, Тип, Состояние, Дата открытия счета, Основной владелец)
    • c. Добавление Карты по этому карточному счету для этого контакта (Номер карты, Владелец физ. лицо, Выдана точкой продажи, Номер, Тип, Категория карты, Причина выдачи карты, Карточный счет, ответственный, Состояние, Дата изменения состояния, дата выдачи)
    • d. Создание новой Покупки по карте для созданного контакта (Номер покупки, Тип покупки, Состояние, Точка продажи, Дата и время покупки, Тип клиента, Клиент физ лицо, Номер карты, Оплата наличными)
    • e. Добавление 2х продуктов в каждую покупку (Продукт, Количество, Единицы измерения, Прайс-лист, Цена, Сумма без учета скидки, % скидки, Итого к оплате)

Конфигурация тестового стенда

В качестве тестового стенда использовался виртуальный сервер : Intel Xeon E5506, 5 Гб ОЗУ, HDD HP Smart Array P410 (SATA), Gigabit Ethernet
ОС – Windows Server 2008 R2, MSSQL – 2008 R2
Тюнинг сервера или БД для нагрузочного тестирования не проводился, все параметры установлены по умолчанию, на сервере во время тестирования работали пользователи

Результаты

За время тестирования (10 минут) в параллельном режиме всеми потоками было добавлено ~ 42 000 Контактов, 42 000 Карточных счетов, 42 000 Карт, 42 000 Покупок, 84 000 Продуктов, всего более 250 000 записей
Скорость составила 25 000 записей в минуту

Если создание покупки полностью считать одной логической транзакцией (Добавление нового клиента, создание карточного счета, карты, покупки, добавление продуктов в покупку), то соответственно получаем 42 000 транзакций за 10 минут, при скорости 4 200 транзакций в минуту

Нравится

Поделиться

0 комментариев
Показать все комментарии