Ну наконец то! Мы запускаем нашу закрытую бета-версию TestMace. Эта статья станет первой в серии статей о нашем продукте, его интерфейсе, основных функциях и преимуществах. Поскольку мы все еще находимся на стадии разработки, в представленном в статье продукте могут быть некоторые отличия. Давайте начнем!

Подпишитесь здесь, чтобы получить ссылку для скачивания: https://client.testmace.com

Ваш первый запуск

Запустив продукт в первый раз, вы увидите:

Давайте внимательно рассмотрим каждую часть интерфейса.

Вы можете увидеть панель инструментов вверху экрана. Пока вы можете сделать следующее:

  1. Отменить и повторить свои действия. На данный момент поддерживаются все действия по изменению проектов и узлов (см. Ниже).
  2. Работайте с куки-файлами через диалог куки-файлов.
  3. Сконфигурируйте и выберите свою среду.

Основной интерфейс приложения разделен на две части - боковую панель и рабочую область. На боковой панели есть верхняя и нижняя части:

Верхний раздел предназначен для работы с текущим проектом.

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

На боковой панели также есть панель Scratches, где сохраняются временные (или «быстрые») запросы пользователей.

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

Типы узлов

Узел - это запись в списке царапин или в любом элементе дерева проекта. Есть несколько типов узлов:

  • RequestStep. Это узел, который можно использовать для отправки запроса. Он может иметь только один узел утверждения в качестве дочернего элемента.
  • Утверждение. Этот используется для написания тестов. Это может быть дочерний узел только для узла RequestStep.
  • Папка. Это позволяет сгруппировать под ним узлы Folder и RequestStep.
  • Проект. Это корневой узел, который создается автоматически при запуске нового проекта. Функционально он идентичен узлу папки.

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

Наша первая просьба

Чтобы создать запрос, вам нужно нажать на +, что прямо под панелью инструментов:

Затем вы увидите интерфейс конфигурации запроса, и на панель Scratches будет добавлена ​​новая запись:

Поздравляем, вы только что создали черновик запроса! Теперь нам осталось только настроить его. Интерфейс конфигурации запросов TestMace очень похож на один из других HTTP-клиентов, поэтому сейчас нет необходимости вдаваться в него. Сразу отметим, что интерфейс визуально разделен на две части: одну для конфигурации запроса, а другую для просмотра результатов ответа.

Отправим запрос. Я использую для тестирования https://next.json-generator.com, так как он помогает создавать различные структуры JSON и предоставлять к ним доступ извне. А теперь, как мы обычно делаем, поприветствуем этот мир и создадим такой JSON:

{
     "action": "Hello",
     "who": "World"
}

Создайте ссылку на него. У меня есть этот https://next.json-generator.com/api/json/get/EJvQVEVGL Затем вставьте его в поле URL и нажмите кнопку RUN. Результат должен быть следующим:

Приложение должно сказать, что запрос был успешным, и отобразить краткую статистику по времени выполнения запроса и размеру ответа. На панели ответов вы можете видеть проанализированные и текстовые (с выделением или без) ответы.

Переменные

Раздел Переменные - это хранилище ключ-значение для хранения и повторного использования некоторых данных. Его часто используют для удаления дубликатов кода и улучшения читаемости: переменная приветствияUrl наверняка говорит больше, чем просто строка https://next.json-generator.com/api/json/get/EJvQVEVGL.

Механизм переменных очень хорошо интегрирован во все части приложения и имеет несколько функций:

  • Переменные могут хранить строки, массивы или объекты.
  • Переменные определяются для каждого узла и наследуются от родительских узлов.
  • Значения переменных могут относиться к другим переменным.
  • Имена переменных по умолчанию начинаются с символа $. По умолчанию используются следующие переменные:
  • $ parent - ссылка на родительский узел
  • $ prevStep - ссылка на предыдущий узел внутри узла папки
  • $ nextStep - ссылка на следующий узел в узле папки
  • $ env - ссылка на переменные окружения (в терминах нашего приложения)
  • $ response (только для RequestStep и его потомков) - ссылка на ответ от сервера.

В интерфейсе каждого узла есть кнопка «Переменные», которая открывает диалог определения переменных.

Пора применить все это на практике! Сначала мы возвращаемся к нашему запросу hello-world и пытаемся поместить URL-адрес в переменную. Как вы помните, это URL https://next.json-generator.com/api/json/get/EJvQVEVGL. Теперь откройте диалоговое окно конфигурации переменных и добавьте переменную с именем welcomeUrl, имеющую наш URL-адрес в качестве значения. Это будет выглядеть так:

Нажмите ОК и измените URL-адрес на нашу новую переменную. Синтаксис: $ {имя_переменной}. В этом случае мы получим:

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

Кроме того, вы можете проверить, какое значение имеет ваша переменная в данный момент. Вам просто нужно указать на переменную!

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

Узел утверждения

Как упоминалось выше, этот узел используется для написания тестов и может быть только дочерним по отношению к узлу RequestStep. Есть два способа добавить узел утверждения в ваш проект:

  • Щелкните правой кнопкой мыши родительский узел на боковой панели.

  • На вкладке "Утверждения" на панели ответов

Мы выберем второй вариант. Щелкните CREATE NEW ASSERTION NODE, и узел утверждения будет добавлен в качестве дочернего узла, а интерфейс будет изменен на интерфейс добавления-утверждения.

Утверждение в узле утверждения - это просто условная проверка. Предположим, нам нужно проверить, отвечает ли сервер «Привет» в поле действия. Пока список утверждений пуст, давайте добавим наш первый тест. Нажмите ДОБАВИТЬ УТВЕРЖДЕНИЕ, и вы увидите интерфейс узла утверждения. Есть шаблон для утверждения:

Давайте подробнее рассмотрим интерфейс. У каждого утверждения есть тип. Есть 4 типа утверждений:

  1. Сравнить значения - просто сравнивает два значения. У нас есть несколько операторов сравнения: «равно», «не равно», «больше», «больше или равно», «меньше», «меньше или равно».
  2. Содержит значение - проверяет, присутствует ли в строке подстрока.
  3. XPath - проверяет наличие определенного значения в XML с помощью селекторов.
  4. Утверждение JavaScript - случайный сценарий JavaScript, который возвращает true в случае успеха и false в случае неудачи.

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

Хорошо, вернемся к нашему маленькому проекту. Значение поля действия можно получить в ответ с помощью response.body.action. Ожидаем получить значение «Hello». Итак, наше утверждение выглядит так:

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

TestMace также может исправлять ошибки. Вы не верите в магию? Просто смотри на эти руки

Например, заменим «Привет» в поле ожидаемого значения на «Пока». После запуска система сообщает, что значения не равны:

Как вы могли заметить, кнопки Отключить ошибки и Исправить ошибки активны (то же самое происходит, когда вы указываете на утверждение):

  • Отключить ошибки отключает утверждение, поэтому оно не будет выполняться в следующих запусках.
  • Fix Errors исправляет ошибки. Поведение при исправлении ошибок зависит от выбранного типа утверждения, и иногда исправить ошибку невозможно.

Нажмите кнопку «Исправить ошибки»… и вуаля! Значение было перенесено из ответа в ожидаемое значение. Если запустить его еще раз, тест пройдет успешно.

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

Затем создается полностью настроенное утверждение, и вам просто нужно нажать кнопку RUN.

Вывод

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

И не стесняйтесь присылать нам свои комментарии и предложения по адресу [email protected]. Обязательно подпишитесь на нас в социальных сетях:

Заранее спасибо!

Дмитрий Сныткин, разработчик TestMace