Examus

база знаний

API. Запуск тестирования с прокторингом

Для начала тестирования нужно отправить POST-запрос из браузера на следующий URL:

https://[examus_url]/integration/simple/[integration_name]/start/

Тело запроса должно представлять собой form-data с одним параметром token, в котором передается JSON Web Token с информацией о сеансе тестирования. JWT должен быть подписан с использованием алгоритма HMAC-SHA256 (“HS256”), ключом для подписи является параметр jwt_secret. Больше информации о JSON Web Token можно найти на jwt.io, там же есть ссылки на библиотеки для работы с ним.


Пример JWT payload



{

"userId": "1232134",

"lastName": "Иванов",

"firstName": "Иван",

"thirdName": "Иванович",

"language": "ru",

"accountId": 123,

"accountName": "Название компании",

"examId": "unique-exam-id",

"courseName": "Физика",

"examName": "Финальный тест",

"userAgreementUrl": "https://school.org/eula",

"duration": 120,

"schedule": false,

"checkIdPhotoQuality": true,

"allowMultipleDisplays": true,

"allowVirtualEnvironment": true,

"auxiliaryCamera": false,

"proctoring": "offline",

"identification": "passport",

"rules": {

"allow_to_use_paper": true,

"allow_to_use_calculator": false

},

"desktopAppForbiddenProcesses": ["chrome.exe","Google Chrome"],

"desktopAppAllowedProcesses": ["chrome.exe","Google Chrome"],

"startDate": "2018-03-27T00:00:00Z",

"endDate": "2018-03-30T12:55:00Z",

"sessionId": "b3875623",

"sessionUrl": "https://go.bananas.com/opentest#test/b3875623",

"exp": 1612994131,

"ldb": true,

"biometricIdentification": {

"enabled": true,

"photo_url": "
",

"skip_fail": false,

"flow": "test-flow"

},

"scoreConfig": {

"cheater_level": 70,

"extra_user": 3.0,

"phone": 0.0

},
"visibleWarnings": {

"warning_extra_user_in_frame": false,

"warning_timeout": false

}

}


Пример JWT payload

Группа параметров

Поле

Тип

Макс. длина

Описание

Параметры пользователя

userId*

string

255

Идентификатор участника в системе заказчика. Он должен быть уникальным для каждого пользователя.

email

string

255

email участника в системе заказчика.

lastName

string

255

Фамилия

firstName

string

255

Имя

thirdName

string

255

Отчество

language

string (enum)

2

Язык пользователя. Двухбуквенный код из ISO 639-1.

Обратитесь в поддержку Экзамуса, чтобы уточнить список поддерживаемых языков и активировать нужные.

Параметры организации

accountId*

string

255

Идентификатор организации в системе заказчика.

Различные accountId нужны, если тест-систему используют несколько организаций, которые нужно различать между собой и разграничивать между ними доступ.

accountName*

string

255

Название организации в системе заказчика

Важно! accountName – это не название учётной записи или аккаунта, для системы это именно наименованием организации, которая проводит тестирования с прокторингом. Примеры:

  1. Московский Государственный университет им.Ломоносова);
  2. Moscowgosuniv
  3. UniversityOfLomonosov

К этому параметру привязываются учётные записи прокторов, администраторов, видеозаписи тестируемых. Поэтому важно передавть одно и тоже значение accountName в рамках одной организации/контрагента, у которого проходят тесты с прокторингом. Смена значения приведёт к созданию новой компании, для которой потребуются новые учётные записи.

Параметры экзамена

courseName

string

450

Название учебного курса, в рамках которого сдается экзамен

examId*

string

255

Идентификатор экзамена в системе, предпочтительно GUID

examName*

string

500

Название экзамена

userAgreementUrl

string (URL)

200

Ссылка на документ, содержащий правила проведения экзамена, с которыми пользователь будет ознакомлен перед началом экзамена

duration*

int

-

Продолжительность экзамена в минутах

schedule*

boolean

-

Необходимость записи в календаре, по умолчанию false

auxiliaryCamera

boolean

-

Включить дополнительную камеру со смартфона

proctoring*

string (enum)

-

Тип прокторинга:

online” в случае с проктором, контролирующим сдачу экзамена (синхронный режим),

offline” в случае с пост-просмотром (асинхронный режим),

auto” в случае автоматического выставления заключения алгоритмами системы

"identification" в случае подключения режима Идентификация

identification

string (enum)

-

Режим фотографирования. Доступные значения:

passport”,

face”,

face_and_passport”,

skip

rules

JSON

-

Правила экзамена

trial

boolean

-

true, если экзамен является пробным. Пробные экзамены не отображаются в архиве, их можно использовать для тестирования интеграции или для ознакомления студентов с системой прокторинга. По умолчанию false

allowMultipleDisplays

boolean

-

true, если в рамках экзамена разрешено использование дополнительного монитора. По умолчанию false

allowVirtualEnvironment

boolean

-

true, если разрешено запускать прокторинг в виртуальной машине. По умолчанию false

checkIdPhotoQuality

boolean

-

true, если требуется автоматическая проверка качества документа. По умолчанию false

scoreConfig

JSON

-

Параметры расчета скоринга

visibleWarnings

JSON

-

Параметры отображения нарушений

desktopAppForbiddenProcesses

JSON

-

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

desktopAppAllowedProcesses

JSON

-

Список строк, где каждая строка это название разрешенного процесса.
Пустой список означает отсутствие разрешенных процессов.
По умолчанию список пуст.

startDate*

string (datetime)

-

Дата и время, начиная с которого можно запустить экзамен, в формате ISO 8601.

Необходимо либо явно указывать часовой пояс, либо использовать специальный формат для UTC.

В случае экзаменов без записи выставляется индивидуально для каждого сеанса прокторинга (т.е. является параметром сеанса, а не экзамена).

endDate*

string (datetime)

-

Дата и время, до которого можно запустить экзамен, в формате ISO 8601.

В случае экзаменов без записи выставляется индивидуально для каждого сеанса прокторинга (т.е. является параметром сеанса, а не экзамена).

Параметры сеанса

sessionId*

string

230

Идентификатор сеанса в системе, предпочтительно GUID. Должен быть уникальным для каждой попытки в системе

sessionUrl*

string (URL)

2550

Ссылка на прохождение экзамена в системе

Важно! Это должна быть страница с тестом, которая уже открывается в прокторинге и где тестируемый видит вопросы теста.

Если вдруг ссылка сама по себе запускает прокторинг, передаётся в JWT, то произойдёт открытие прокторинга в прокторинге.

sessionFinishUrl

string (URL)

2550

Адрес страницы, на которую студент должен быть перенаправлен после завершения экзамена. Его также можно передать в параметрах завершения сеанса.

reviewUrl

string (URL)

600

URL, на который будет отправлен результат прокторинга. Переопределяет review_url для этого сеанса прокторинга.

Параметры среды

ldb

boolean

-

Необходимость открывать экзамен в защищенном (lockdown) браузере. Какой именно браузер использовать, нужно согласовать заранее.

biometricIdentification

JSON

-

Параметры биометрической идентификации


Если передать в токене ID пользователя или экзамена, который уже был использован ранее, то в Экзамусе будет изменен уже существующий объект, а не создан новый. Таким образом можно поменять правила экзамена, его продолжительность и любые другие параметры.

Экзамус создает пользователя по переданной информации (либо использует существующего), авторизует его и создает сеанс прокторинга. После этого пользователь с помощью веб-приложения начинает сессию прокторинга, проходит идентификацию личности и проверку соединения, и в случае успеха Экзамус перенаправляет пользователя на страницу тестирования в системе заказчика по sessionUrl, указанному в токене.

Если во время сеанса прокторинга произошел разрыв связи или другие технические неполадки, из-за которых страница с экзаменом оказалась закрыта, тестируемый в течение небольшого промежутка времени (5-15 минут, в зависимости от того, как настроен таймаут на сервере Экзамуса) может зайти в тест заново по той же ссылке. Если связь отсутствовала слишком долго, сеанс прокторинга автоматически завершится, после чего потребуется заново сгенерировать ссылку для прохождения экзамена с новым sessionId.