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

Динамические переменные - это переменные, значения которых определяются во время выполнения сценария. Сохранение авторизационных токенов, идентификаторов вновь созданных сущностей - вот яркие варианты использования данного механизма. Он состоит их двух частей - Variable assignment и собственно динамических переменных.

### Variable assignment

Это создание привязки части запроса к какой-либо динамической переменной. На данный момент данную привязку можно сделать только в [RequestStep](https://docs-ru.testmace.com/master/node-types/requeststep) узле. Для иллюстрации давайте создадим запрос который создает новый пост и сохраним id созданного постав в динамическую переменную.

Создаем запрос и выполняем его. К примеру, давайте сделаем запрос на POST <https://testmace-stage.herokuapp.com/posts>, с телом `{"title":"Our cool post!"}` . В данном случае RequestStep узел выглядит так:

![RequestStep после выполнения запроса](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMtpiZOkqva1t-DrvG%2F-LiMv1-_1PBbcv_9qnro%2Fd_1.png?alt=media\&token=40002d5b-a894-46e1-a0a5-96996fb0b052)

Теперь из parsed response на параметр id из контекстного меню вызовем диалог присваивания динамической переменной.

![Вид контекстного меню](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMtpiZOkqva1t-DrvG%2F-LiMv3_gPF04RLw6OEjw%2Fd_2.png?alt=media\&token=d07e0d86-2652-4cf0-96f7-7bb7f743b1e6)

Выберем пункт Assign to variable. Откроется диалог присваивания переменной

![Диалог присвоения динамической переменной](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMtpiZOkqva1t-DrvG%2F-LiMv6iwCGaSI3xglCyW%2Fd_3.png?alt=media\&token=7f0cc565-89f7-491e-9a5f-59529ed51285)

В данном диалоге отмечены следующие пункты

1. Путь в переменной `$request`, из которого будет браться значение
2. Выпадающий список предков, которым можно назначить динамическую переменную
3. Текущее значение по данному пути
4. Название динамической переменной

Создадим переменную с именем `id` в данном узле.

После присвоения динамической переменной ее можно найти в списке динамических переменных того узла, где производилось присвоение, т.е, в [RequestStep](https://docs-ru.testmace.com/master/node-types/requeststep) узле. Список динамических переменных можно найти в [диалоге переменных](https://docs-ru.testmace.com/master/variables/user-variables) на вкладке Dynamic variables.

![Список динамических переменных RequestStep узла](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMtpiZOkqva1t-DrvG%2F-LiMv9b3IDvlZpwkDk_M%2Fd_4.png?alt=media\&token=01d78d68-b1ce-4c00-aaad-e4a879f43c4d)

### Использование динамических переменных

Все динамические переменные, доступные для конкретного узла, хранятся в переменной `$dynamicVar`. Например, чтобы сослаться на переменную `id`, созданную выше, необходимо написать `$dynamicVar.id`. Как и в случае с другими переменными, данный вид переменных поддерживает наследование и переопределение в потомках.
