Быстрый старт

Данное руководство позволит вам быстро освоить интерфейс и основные функции TestMace.

В этом руководстве мы протестируем работу back-end сервера для записей типа post на следующем сценарии:

  • запросим у сервера все имеющиеся записи

  • добавим новую запись

  • проверим корректное добавление записи

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

  • запросим обновленную запись от сервера

  • проверим, что на сервере запись действительно обновлена

  • удалим запись

  • проверим, что на сервере запись не существует

Для этого нам потребуется не более 10 минут, после запуска программы.

Установка TestMace

Скачать TestMace можно по ссылкам ниже или с сайта https://client.testmace.com

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

Для установки TestMace на Windows запустите инсталлятор с правами администратора.

По завершению установки запустите приложение. Перед вами откроется новый проект.

Обзор интерфейса

Ваш первый GET запрос

Для создания первого запроса создайте новую вкладку нажав на +. При этом в зоне "Scrathes Area" будет создан узел с названием Scratch 1. Вставьте в поле URL адрес: https://testmace-stage.herokuapp.com/posts. Можно сразу протестировать ответ сервера из "Scrathes Area" или перенести наш черновик в проект. Для удобства переименуйте этот узел, дав ему название getPosts.

Обратите внимание, что все изменения в проекте сохраняются автоматически в режиме реального времени.

Создание шаблона GET запроса

Создайте в проекте узел типа Folder с названием posts и перенесите созданный черновик getPosts из "Scratch Area" в "Project Area".

Создание Folder узла и перенос шаблона GET запроса

Откройте двойным кликом созданный запрос getPosts и выполните его нажав на кнопку "Run".

Запуск GET запроса

Мы видим, что запрос выполнен успешно, в Response Area получен список существующих записей. Давайте рассмотрим этот экран подробнее:

Request parameters

Здесь вы можете указать http заголовки, а так же передать параметры запросу с автодополнением и использование переменных.

Request type

  • GET — получение ресурса

  • POST — создание ресурса

  • PUT — обновление ресурса

  • DELETE — удаление ресурса

  • PATCH — для частичного изменения ресурса

  • OPTIONS — для описания параметров соединения с ресурсом

URL

Поле URL поддерживает автодополнение, а так же использование переменных. Мы воспользуемся этими функциями чуть позже.

Make Request

Выполнение запроса или группы запросов при запуске из корня проекта или ноды типа folder

Response area

Зона ответа сервера, вкладка Response Body может быть представлена в виде: Parsed, JSON, text. В соседних вкладках можно посмотреть Response Headers, а так же создать или посмотреть существующие Assertion узлы для запроса.

POST запрос и Assertion

Давайте теперь добавим новую запись типа post на сервер, для этого нам нужно создать новый RequestStep узел.

Существует три способа добавления нового узла в проект:

  1. Мы можем создать черновик (Scratch) нажав на + и позже перенести его в проект используя Drag and Drop;

  2. Можно нажать правой кнопкой мыши по узлу родителю и выбрать Add node -> Request step;

  3. Можно нажать на кнопку Add project node-> Add node -> Request step.

Создайте новый узел любым из этих способов и задайте ему имя createPost.

  1. Выберите для этого узла "Request type" значением POST

  2. В поле URL вставьте https://testmace-stage.herokuapp.com/posts

  3. Во вкладке body выберите тип данных JSON и добавьте {"title": "Testing post", "content": "Sendt via TestMace"}

  4. Выполните запрос нажав на кнопку RUN.

Будет получен ответ об успешном добавлении записи, но нам нужно проверить, что запись добавлена корректно, для этого мы воспользуемся механизмом быстрого создания Assertion узлов. Мы сравним отправляемые данные с полученными от сервера.

В зоне "Response Area" в формате Parsed нажмите правой кнопкой мыши по значению title, которое мы передавали в запросе, выберите Create Assertion -> Compare -> Equal. После этого узел Assertion будет создан и открыт, нам дополнительной настройки не требуется, поэтому закроем его. Аналогично создадим Assertion узел для значения Content.

А теперь запустим запрос createPost и интерфейс проинформирует нас об успешном выполнении теста. Это совсем не сложно, посмотрите анимацию ниже:

POST запрос и создание Assertion

Динамические переменные

Для того, чтобы мы могли взаимодействовать с созданной нами записью на сервере, нужно передавать в последующие Request step значение её Id. Создадим динамическую переменную postId и присвоим ей значение Id возвращаемое в записи после выполнения CreatePost.

  1. Кликните правой кнопкой мыши по значению Id в Response body ноды CreatePost,

  2. Выберите пункт Assign to variable.

  3. Во всплывающем окне в качестве ноды выберите директорию проекта posts, введите имя переменной: postId и нажмите ОК.

Для того чтобы обратиться к переменной используйте встроенную переменную $dynamicVar:

${$dynamicVar.postId}
Создание динамической переменной

PUT запрос

На этом этапе мы будем использовать запрос типа PUT. Обратимся к записи созданной на предыдущем шаге при помощи динамической переменной: ${$dynamicVar.postId} и обновим значения записи title и content.

  1. Создайте RequestStep узел c именем updatePost

  2. Request type выберите PUT

  3. Body: {"title": "Testing post updated", "content": "Updated via TestMace"}

  4. Выполним запрос и аналогично шагу POST запрос, создадим два Assertion узла для сравнения отправленных и полученных значений title и content.

Создание PUT запроса

Проверка изменений

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

Для этого мы создадим GET запрос по URL записи с использованием динамической переменной:

  1. Создайте новый RequestStep узел с именем getPost

  2. Тип запроса: GET

  3. Выполните запрос и создайте 2 Assertion узла для сравнения данных title и content.

Проверка изменений через GET запрос

DELETE запрос

Следующий шаг - удаление созданной нами записи по URL записи с использованием динамической переменной:

  1. Создайте узел типа RequestStep с именем deletePost

  2. Тип запроса: DELETE

DELETE запрос

Проверка DELETE

Для того, чтобы убедиться, что созданная запись была удалена с сервера, создадим GET запрос по URL записи с использованием динамической переменной, мы ожидаем, что при запросе получим ответ сервера: 404, поэтому создадим соответствующий Assertion узел:

  1. Создайте узел типа RequestStep с именем checkIfNodeExists

  2. Тип запроса: GET

  3. Выполните запрос и в зоне Response Area выберите пункт Assertions и добавьте новый Assertion узел, нажав ADD. Внесите данные узла:

    1. Actual value: ${$response.code}

    2. Operator: =

    3. Expected value: 404

Заключение

В результате мы получили набор тестов для нашего сервера, которые можно последовательно выполнить, перейдите в узел posts и нажмите RUN.

Запуск сценария

Видео инструкция

Посмотрите весь процесс создания сценария описанного в руководстве на видео

Код для импорта через shared

Скачать проект

Разархивируйте в директорию проектов TestMace.