Как обойти логин для юнит-тестирования Oracle APEX? - PullRequest
0 голосов
/ 30 января 2019

В соответствии с лучшими практиками Cypress, я должен избегать использования моего логина перед каждым тестом.Я изо всех сил пытаюсь сделать это, используя Oracle APEX , потому что кажется, что процесс входа требует намного больше, чем просто имя пользователя и пароль.

Я использовал tamper data tool и Jmeter в Chrome дляизучить механизм входа в систему Oracle APEX и, по сути, процесс входа в систему состоит из 2 шагов:
(1) страница входа перенаправляет на страницу входа с действительным идентификатором сеанса в URL, заполненном десятками, чувствительными ко времениуникальные идентификаторы.
(2) После отправки вашего имени пользователя и пароля в /ords/wwv_flow.accept делается запрос POST с именем пользователя, паролем и несколькими другими чувствительными ко времени уникальными идентификаторами.

ItПохоже, что для успешного входа в систему APEX требуется нечто похожее на следующее:

p_json : {"salt":"108222855956905007172773085768141257328","pageItems":{"itemsToSubmit":[{"n":"P101_USERNAME","v":"jsmith"},{"n":"P101_PASSWORD","v":"Password123"}],"protected":"unDCYO1qmj_OAwtyYNo_yA","rowVersion":""}},
p_flow_id : 4000250,
p_flow_step_id: 101,
p_instance: 6589106753596,
p_page_submission_id: 108222855…,
p_request : LOGIN,
p_reload_on_submit : A

Все эти переменные (кроме имени пользователя и пароля) доступны на странице входа в систему, но для их получения мне необходимо посетить страницуинтерфейс входа в систему, что я пытаюсь избежать.Я думаю об этом неправильно?

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Я не уверен в упомянутых вами рекомендациях, но информация о сеансе, которую вы можете передать во время тестирования , должна быть создана механизмом APEX на стороне сервера.

Существуетнет такого способа обойти вход в систему, просто передав на сервер некоторые параметры, кроме правильной информации о полномочиях.Однако вы можете реализовать собственную схему аутентификации в APEX, которая аутентифицировала бы (и создала бы ваш сеанс), используя некоторый токен или какой-то другой нестандартный способ, например, для проверки агента браузера, IP-адреса, среды.не знаю.

Эта пользовательская схема аутентификации не связана с модульным тестированием.

0 голосов
/ 30 января 2019

Я считаю, что это неправильный подход.Что касается модульного тестирования, вы должны принять некоторую степень изменчивости с точки зрения производства и предварительного производства.Сказав вышесказанное, я думаю, вам нужно рассмотреть более «нормальный» подход, такой как:

  • Смена паролей в Pre-Prod.
  • Альтернативная схема аутентификации.
  • Варианты альтернативной сборки в зависимости от ваших потребностей.
...