Используйте тестовое API JavaScript

Тестирование — это браузерное приложение UWP, которое отображает заблокированные онлайн-оценки для тестирования с высоким уровнем ставок, что позволяет преподавателям сосредоточиться на содержимом оценки, а не о том, как обеспечить безопасную среду тестирования. Для этого используется API JavaScript, который может использовать любое веб-приложение. API тестирования take-a-test поддерживает стандартный API браузера SBAC для высокоуровневого тестирования основных компонентов.

Дополнительные сведения о самом приложении см. в техническом справочнике по тестированию приложения. Сведения об устранении неполадок см. в статье "Устранение неполадок Microsoft Take a Test" с помощью средства просмотра событий.

Справочная документация

API "Take a Test" существуют в следующих пространствах имен. Обратите внимание, что все API зависят от глобального SecureBrowser объекта.

Namespace Description
пространство имен безопасности Содержит API-интерфейсы, позволяющие заблокировать устройство для тестирования и применить среду тестирования.

Пространство имен безопасности

Пространство имен безопасности позволяет заблокировать устройство, проверить список процессов пользователя и системы, получить MAC и IP-адреса и очистить кэшированные веб-ресурсы.

Метод Description
lockDown Блокирует устройство для тестирования.
isEnvironmentSecure Определяет, применяется ли контекст блокировки к устройству.
getDeviceInfo Получает сведения о платформе, на которой выполняется тестовое приложение.
examineProcessList Возвращает список запущенных процессов пользователей и системных процессов.
закрывать Закрывает браузер и разблокирует устройство.
getPermissiveMode Проверяет, включен ли или отключен режим разрешительного режима.
setPermissiveMode Включает или выключает разрешающий режим.
emptyClipBoard Очищает системный буфер обмена.
getMACAddress Возвращает список MAC-адресов для устройства.
getStartTime Возвращает время запуска приложения тестирования.
getCapability Запрашивает, включена ли или отключена возможность.
setCapability Включает или отключает указанную возможность.
isRemoteSession Проверяет, выполнен ли текущий сеанс удаленно.
isVMSession Проверяет, запущен ли текущий сеанс на виртуальной машине.

lockDown

Блокирует устройство. Также используется для разблокировки устройства. Тестовое веб-приложение вызовет этот вызов, прежде чем разрешить учащимся начать тестирование. Необходимо выполнить любые действия, необходимые для защиты среды тестирования. Действия, предпринятые для защиты среды, зависят от устройства и, например, включают такие аспекты, как отключение захвата экрана, отключение голосового чата в безопасном режиме, очистка системного буфера обмена, перевод устройства в режим киоска, отключение функции Spaces на устройствах с OSX 10.7+ и другие меры. Тестовое приложение активирует блокировку до начала оценки и отключит её, когда учащийся завершит оценку и выйдет из безопасного режима тестирования.

Syntax
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

Параметры

  • enable - true, чтобы запустить приложение Take-a-Test поверх экрана блокировки и применить политики, описанные в технической справке по приложению Take-a-Test. false останавливает выполнение Take-a-Test над экраном блокировки и закрывает его, если приложение не заблокировано; в этом случае это не оказывает никакого эффекта.
  • onSuccess — [необязательно] Функция для вызова после успешного включения или отключения блокировки. Он должен иметь форму Function(Boolean currentlockdownstate).
  • onError — [необязательно] Функция для вызова, если операция блокировки завершилась сбоем. Он должен иметь форму Function(Boolean currentlockdownstate).

Требования
Windows 10 версии 1709 или более поздней


isEnvironmentSecure

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

Syntax
void SecureBrowser.security.isEnvironmentSecure(Function callback);

Параметры

  • callback — Функция, вызываемая при завершении этой функции. Он должен иметь форму Function(String state) , в state которой находится строка JSON, содержащая два поля. Первое поле, secure, будет отображаться true только в том случае, если все необходимые блокировки активированы (или функции отключены) для обеспечения безопасной тестовой среды, и ни одна из них не была скомпрометирована с момента, как приложение перешло в режим блокировки. Другое поле messageKeyсодержит другие сведения или сведения, относящиеся к поставщику. Здесь необходимо разрешить поставщикам добавлять дополнительные сведения, которые расширяют логический secure флаг:
{
    'secure' : "true/false",
    'messageKey' : "some message"
}

Требования
Windows 10 версии 1709 или более поздней


getDeviceInfo

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

Syntax
void SecureBrowser.security.getDeviceInfo(Function callback);

Параметры

  • callback — Функция, вызываемая при завершении этой функции. Он должен иметь форму Function(String infoObj) , в которой infoObj находится строка JSON, содержащая несколько полей. Следующие поля должны поддерживаться:
    • os представляет тип ОС (например, Windows, macOS, Linux, iOS, Android и т. д.)
    • name представляет имя выпуска ОС, если таковой есть (например, Sierra, Ubuntu).
    • version представляет версию ОС (например, 10.1, 10 Pro и т. д.)
    • brand представляет безопасную фирменную символику браузера (например, OAKS, CA, SmarterApp и т. д.)
    • model представляет модель устройства только для мобильных устройств; нулевое значение/не используется для настольных браузеров.

Требования
Windows 10 версии 1709 или более поздней


examineProcessList

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

Syntax
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

Параметры

  • denylistedProcessList — список процессов, которые тестируемое приложение внесло в черный список.
    callback — Функция, вызываемая после обнаружения активных процессов. Он должен находиться в форме: Function(String foundDenylistedProcesses) где foundDenylistedProcesses находится в форме: "['process1.exe','process2.exe','processEtc.exe']" Он будет пустым, если не найдены запрещенные процессы. Если значение null, это означает, что в исходном вызове функции произошла ошибка.

Замечания Список не включает системные процессы.

Требования
Windows 10 версии 1709 или более поздней


закрыть

Закрывает браузер и разблокирует устройство. Тестовое приложение должно вызвать это, когда пользователь выбирает выход из браузера.

Syntax
void SecureBrowser.security.close(restart);

Параметры

  • restart — Этот параметр игнорируется, но должен быть указан.

Замечания В Windows 10 версии 1607 устройство должно быть заблокировано изначально. В более поздних версиях этот метод закрывает браузер независимо от того, заблокировано ли устройство.

Требования
Windows 10 версии 1709 или более поздней


getPermissiveMode

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

Syntax
void SecureBrowser.security.getPermissiveMode(Function callback)

Параметры

  • callback — Функция, вызываемая при завершении этого вызова. Он должен находиться в форме: Function(Boolean permissiveMode) где permissiveMode указывается, находится ли браузер в режиме разрешительного режима. Если значение не определено или равно null, в операции получения произошла ошибка.

Требования
Windows 10 версии 1709 или более поздней


setPermissiveMode

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

Syntax
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

Параметры

  • enable — Логическое значение, указывающее предполагаемое состояние разрешающего режима.
  • callback — Функция, вызываемая при завершении этого вызова. Он должен находиться в форме: Function(Boolean permissiveMode) где permissiveMode указывается, находится ли браузер в режиме разрешительного режима. Если значение не определено или равно null, в операции задания произошла ошибка.

Требования
Windows 10 версии 1709 или более поздней


emptyClipBoard

Очищает системный буфер обмена. Тестовое приложение должно вызвать это, чтобы принудительно очистить все данные, которые могут храниться в системном буфере обмена. Функция lockDown также выполняет эту операцию.

Syntax
void SecureBrowser.security.emptyClipBoard();

Требования
Windows 10 версии 1709 или более поздней


getMACAddress

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

Syntax
void SecureBrowser.security.getMACAddress(Function callback);

Параметры

  • callback — Функция, вызываемая при завершении этого вызова. Он должен находиться в форме: Function(String addressArray) где addressArray находится в форме: "['00:11:22:33:44:55','etc']"

Remarks
Трудно полагаться на исходные IP-адреса, чтобы различать компьютеры конечных пользователей на серверах тестирования, так как брандмауэры/NATs/Proxies обычно используются в школах. MAC-адреса позволяют приложению различать конечные клиентские компьютеры за общим брандмауэром для диагностики.

Требования
Windows 10 версии 1709 или более поздней


getStartTime

Возвращает время запуска приложения тестирования.

Syntax
DateTime SecureBrowser.security.getStartTime();

Возврат
Объект DateTime, указывающий время запуска приложения тестирования.

Требования
Windows 10 версии 1709 или более поздней


getCapability

Запрашивает, включена ли или отключена возможность.

Syntax
Object SecureBrowser.security.getCapability(String feature)

Параметры

feature — строка для определения возможности запроса. Допустимые строки возможностей: screenMonitoring, print и textSuggestions (без учета регистра).

Возвращаемое значение
Эта функция возвращает объект JavaScript или литерал с формой: {<feature>:true|false} Значение true , если запрошенная возможность включена, значение false , если эта возможность не включена или строка возможности недопустима.

Требования Windows 10 версии 1703 или более поздней


setCapability

Включает или отключает определенную возможность в браузере.

Syntax
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)

Параметры

  • feature — строка для определения возможности, которую необходимо задать. Допустимые строки возможностей: "screenMonitoring", "printing"и "textSuggestions" (без учета регистра).
  • value — Предполагаемый параметр для функции. Он должен быть либо "true", либо "false".
  • onSuccess — [необязательно] Функция для вызова после успешного завершения операции установки. Он должен иметь формуFunction(String jsonValue), в которой jsonValue находится в форме: {<feature>:true|false|undefined}
  • onError — [необязательно] Функция для вызова, если операция задания завершилась сбоем. Он должен иметь формуFunction(String jsonValue), в которой jsonValue находится в форме: {<feature>:true|false|undefined}

Remarks
Если целевая функция неизвестна браузеру, эта функция передает значение undefined функции обратного вызова.

Требования Windows 10 версии 1703 или более поздней


isRemoteSession

Проверяет, выполнен ли удаленный вход в текущую сессию.

Syntax
Boolean SecureBrowser.security.isRemoteSession();

Возвращаемое значение
true, если текущий сеанс выполняется удаленно, в противном случае false.

Требования
Windows 10 версии 1709 или более поздней


isVMSession

Проверяет, запущен ли текущий сеанс в виртуальной машине.

Syntax
Boolean SecureBrowser.security.isVMSession();

Возвращаемое значение
true, если текущий сеанс выполняется на виртуальной машине, иначе false.

Remarks
Эта проверка API может обнаруживать только сеансы виртуальных машин, выполняемые в определенных гипервизорах, реализующих соответствующие API

Требования
Windows 10 версии 1709 или более поздней