API JavaScript Тестирование

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

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

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

API-интерфейсы Тестирование существуют в следующих пространствах имен. Обратите внимание, что все API зависят от глобального SecureBrowser объекта.

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

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

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

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

lockDown

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

Синтаксис
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

Параметры

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

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


isEnvironmentSecure

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

Синтаксис
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

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

Синтаксис
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 представляет модель устройства только для мобильных устройств; Null/unused для классических браузеров.

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


examineProcessList

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

Синтаксис
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

Параметры

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

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

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


close

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

Синтаксис
void SecureBrowser.security.close(restart);

Параметры

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

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

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


getPermissiveMode

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

Синтаксис
void SecureBrowser.security.getPermissiveMode(Function callback)

Параметры

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

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


setPermissiveMode

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

Синтаксис
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

Параметры

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

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


emptyClipBoard

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

Синтаксис
void SecureBrowser.security.emptyClipBoard();

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


getMACAddress

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

Синтаксис
void SecureBrowser.security.getMACAddress(Function callback);

Параметры

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

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

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


getStartTime

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

Синтаксис
DateTime SecureBrowser.security.getStartTime();

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

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


getCapability

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

Синтаксис
Object SecureBrowser.security.getCapability(String feature)

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

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

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


setCapability

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

Синтаксис
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}

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

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


isRemoteSession

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

Синтаксис
Boolean SecureBrowser.security.isRemoteSession();

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

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


isVMSession

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

Синтаксис
Boolean SecureBrowser.security.isVMSession();

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

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

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