Как отправить результаты тестирования на сервер?

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

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

Обязательные требования

  • Установленный iSpring QuizMaker или iSpring Suite.
  • Сервер с возможностью полного доступа к файловой системе и конфигурационным настройкам.
  • Умение программировать серверные приложения (PHP или  C#, SQL, XML).

Настройка теста

Включите опцию Отправить результаты на сервер в настройках теста. Для этого выполните следующие шаги:

  1. Откройте существующий тест или создайте новый.
  2. Нажмите Свойства на панели инструментов iSpring QuizMaker.
    iSpring QuizMaker - программа для создания тестов
  3. Затем выберите раздел Отправка отчета.
  4. Включите опцию Отправить результаты на сервер и введите адрес скрипта, обрабатывающего результаты тестирования на вашем сервере (далее будет подробнее раскрыто в статье)

    Настройки теста в iSpring QuizMaker

  5. Для сохранения настроек нажмите Сохранить.
  6. Опубликуйте ваш тест.

Какие данные отправляет iSpring QuizMaker?

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

Тесты, созданные в iSpring QuizMaker, отсылают результаты, используя метод HTTP POST. В следующей таблице приведены все POST переменные, отправляемые тестом.


Переменная

Описание

Комментарий

Версия

v

Версия iSpring QuizMaker

 

6, 7, 8, 9

dr

Подробные результаты в XML формате

опционально, при наличии

6, 7, 8, 9

sp

Набранные баллы

опционально, при наличии

6, 7, 8, 9

ps

Проходной балл

опционально, при наличии, зависит от настройки “Проходной балл” в Основных настройках теста

6, 7, 8, 9

psp

Проходной балл в процентах (процент от общего количества баллов, которое тестируемый должен набрать для успешного прохождения теста)

опционально, при наличии, зависит от настройки “Проходной балл” в Основных настройках теста

6, 7, 8, 9

tp

Общая оценка

опционально, при наличии

6, 7, 8, 9

sn

Имя тестируемого

опционально, при наличии, в версии 7 устарело, следует использовать USER_NAME

6, 7, 8

se

Адрес электронной почты тестируемого

опционально, при наличии, в версии 7 устарело, следует использовать USER_EMAIL

6, 7, 8, 9

qt

Заголовок теста

 

6, 7, 8, 9

t

Тип теста

 

7, 8, 9

rt

XML шаблон для отправки результатов по электронной почте

опционально, при наличии

7, 8

ae

Адрес электронной почты инструктора

опционально, при наличии

9

aa

Включение ответов пользователя в отчет инструктору

опционально, при наличии

9

rf

Имя отправителя письма с отчетом с результатами теста (поле От)

опционально, при наличии

9

rs

Тема письма с отчетом с результатами теста (поле Тема)

опционально, при наличии

9

rc

Комментарий в письме с отчетом с результатами теста (поле Комментарий)

опционально, при наличии

9

rm

Переводы сообщений согласно их идентификаторам

опционально, при наличии

9

sid

Идентификатор пользователя

опционально, при наличии

7, 8, 9

tl

Ограничение по времени

опционально, при наличии

7, 8, 9

ut

Время, затраченное на прохождение теста

опционально, при наличии

7, 8, 9

fut

Время, затраченное на прохождение теста (с указанием формата времени)

опционально, при наличии

9

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

[пользовательская переменная]

[значение пользовательской переменной]

задается пользователем, подробнее рассмотрено ниже

7, 8, 9

USER_NAME

Имя тестируемого

пользовательская переменная

7, 8, 9

USER_EMAIL

Адрес электронной почты тестируемого

пользовательская переменная

7, 8, 9

pv

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

пользовательские переменные и их значения, переданные в запросе

9

sa

Включение ответов пользователя в отчет тестируемому

опционально, при наличии

9

sc

Включение правильных ответов пользователя в отчет тестируемому

опционально, при наличии

9

sf

Включение текста обратной связи в отчет тестируемому

опционально, при наличии

9

vt

Массив доступных пользовательских переменных

Каждый элемент массива в свою очередь является массивом, состоящим из двух именованных элементов: id (содержит идентификатор переменной, например “COMPANY”) и подпись к значению переменной (например, “Компания”)

7, 8, 9

Примечание: QuizMaker отсылает значение только одной из переменных  ps или psp в зависимости от настройки Проходной балл (Настройки теста → Основные). Если настройка задана в баллах, программа отсылает ps, если в процентах – то psp.

Что такое пользовательская переменная?

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

Пользовательские переменные становятся доступными, если в тест добавить анкету и запрашивать информацию о пользователе. Для управления пользовательскими переменными в своем тесте:

  1. Нажмите Введение > Анкета пользователя на панели инструментов iSpring QuizMaker.

    Добавление анкеты пользователя в iSpring QuizMaker

  2. Настройте форму сбора данных.
    Настройка формы запроса в iSpring QuizMaker

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

Примеры пользовательских переменных:

USER_NAME = ”Иван”

USER_EMAIL = ”ivan@mail.ru

COMPANY = ”Компания”

Пример заполнения массива vt:

vt = [{id:USER_NAME, title:"Имя"}, {id:USER_EMAIL, title:"E-mail"}, {id:COMPANY, title:"Компания"}]

Значение title для переменной в массиве переменных vt задается в пользовательском интерфейсе iSpring QuizMaker (Соответствует столбцу "Имя поля" в диалоговом окне Настроить форму запроса).

Подробные результаты

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

Подробные результаты передаются в переменной dr в XML формате.

XML схема, описывающая структуру XML с подробными результатами доступна по ссылке:
https://github.com/ispringsolutions/QuizResults/blob/master/QuizReport.xsd

Рассмотрим пример, демонстрирующий сохранение подробных результатов.

Пример теста про Эверест

  1. Допустим, мы открыли в iSpring QuizMaker тест про Эверест и перешли к вопросу о пике Эвереста. Это вопрос с одиночным выбором ответа, который имеет один правильный ответ «Китай и Непал».
    Редактор теста iSpring QuizMaker
  2. После публикации теста выберите ответ «Китай и Непал» и нажмите кнопку Ответить.
    Вопрос теста iSpring Quizmaker
  3. После того, как тест пройден и результаты получены на сервере, мы можем проверить полученные данные. Далее приведен фрагмент XML с подробными результатами для данного конкретного вопроса:
    Отправка результатов теста на сервер

Каждому вопросу автоматически присваивается уникальный id. Атрибуты элементы предоставляют информацию по данному вопросу: правильность ответа (status = "correct" / "incorrect") , максимальное количество баллов, которое пользователь может получить за правильный ответ (maxPoints = "10"), максимальное количество разрешенных попыток ответа (maxAttempts= "1") , набранное количество баллов (awardedPoints = "10") и номер попытки (usedAttempts= "1") .

Вопрос с одиночным выбором ответа содержит три возможных ответа. У каждого ответа в списке есть индекс, который нумеруется, начиная с нуля: 0, 1, 2.

«Китай и Непал» - первый ответ в списке (correctAnswerIndex=”0”).

Совет: для просмотра содержимого POST запроса, включая данный XML файл, вы можете использовать средства разработки вашего браузера (F12). В качестве популярной бесплатной программы, используемой многими экспертами, можно посоветовать Fiddler компании Telerik.

Создание PHP скрипта

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

Этот код на языке PHP получает переданные из теста методом POST значения:

$version = $_POST['v'];

$points = $_POST['sp'];

$passing_percent = $_POST['psp'];

$gained_score = $_POST['tp'];

$username = $_POST['sn'];

$email = $_POST['se'];

$quiz_title = $_POST['qt'];

$detailed_results_xml = $_POST['dr'];     //Эта переменная возвращает XML file.

$_POST - это ассоциативный массив, содержащий переменные, передаваемые в скрипт методом POST протокола HTTP. Все, что вам нужно сделать далее - это обработать необходимые переменные из вышеприведенной таблицы и разобрать XML файл, содержащийся в переменной dr.

Ответ сервера при кроссдоменном запросе XMLHttpRequest должен быть примерно таким:

HTTP/1.1 200 OK
Content-Type:text/html; charset=UTF-8
Access-Control-Allow-Origin: *

Если параметра Access-Control-Allow-Origin нет, то JavaScript в тесте считает, что разрешение на отправку результатов не получено, и выдает ошибку.

Пример PHP-скрипта для обработки результатов теста на сервере вы можете посмотреть здесь.

Описание: Этот скрипт разбирает информацию о попытке пройти тест и записывает ее в текстовый файл. Результаты в текстовой форме включают в себя имя пользователя, адрес электронной почты, результат тестирования и проходной балл. Параметры вопроса включают в себя текст вопроса, правильный ответ, ответ пользователя и баллы за данный вопрос.

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

Примечание техподдержки

Компания iSpring всегда нацелена на оказание помощи своим пользователям в достижении поставленных целей. Пожалуйста, имейте в виду, что данная тема достаточна сложная и посвящена разработке сторонних систем, а не функциональности iSpring QuizMaker (которая обеспечивается нашей бесплатной техподдержкой).

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

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