Перейти к основному содержимому

Окно переменных

🔗 Оригинальная страница — Источник данного материала


Описание

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

Данное окно удобно использовать при отладке.

Во время выполнения проекта можно изменять значения переменных с помощью экшена Обработка переменных.

Для чего это используется?

  • Различные манипуляции с переменными.
  • Отслеживание изменений происходящих с переменными в процессе отладки проекта.

Как открыть окно?

image-20200810-135747

Если вы не видите панель статических блоков

То кликните правой клавишей мыши на пустом пространстве рабочего окна и установите чекбокс Показать статические блоки в контекстном меню.

  • Второй способ - через меню Окно → Переменные.

image-20210501-154936


Элементы управления

Рассмотрим каждый элемент окна переменных:

image-20210501-155527

Типы переменных

image-20210501-155828

По сути это таб переключающий отображение выбранного типа переменных. Имеет шесть вариантов:

Свои

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

Авто

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

Автосгенерированные переменные имеют примерно такие названия - Variable1, RecognitionResult0. Однако вы всегда можете переместить их в Свои и там уже задать им любое желаемое имя.

Как переместить автоматически созданную переменную в Свои?

Для этого надо перейти во вкладку Авто, выделить переменную и нажать кнопку Переместить в Свои:

image-20210501-160658

После перемещения переменной её можно переименовать, дав более понятное имя.

Окружение

В этом табе отображаются переменные окружения проекта: различные параметры страницы инстанса (URL, DOM, текст, домен, текст нотификаций и алертов и т. д.), переменные времени и даты, переменные проекта (имя, папка, правила прокси, id последней ошибки и т. д.) , многочисленные переменные профиля (почта, пол, имя, юзерагент и т. д.)

В этой статье можно ознакомиться с полным списком доступных переменных окружения.

Глобальные

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

Глобальные же переменные доступны для всех проектов и их потоков в ZennoPoster.

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

У ProjectMaker и ZennoPoster раздельные глобальные переменные.

Иными словами изменения внесённые в глобальную переменную в PM не будут видны в ZP, и наоборот.

Json

Эти переменные также генерируются автоматически, но в процессе парсинга JSON.

В режиме Парсинг у экшена Обработка JSON/XML можно из JSON текста сразу разложить значения по автоматически созданным переменным с соответствующими узлами.

image-20200810-143715

Далее в проекте можно использовать эти переменные через префикс { -Json….- }.
Либо в C# посредством объекта project.Json;

image-20200810-144244

Xml

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

image-20200810-144921

Как и в случае с JSON, переменные XML можно использовать через префикс { -XML….- }.
Либо в C# через свойства объекта project.XML;

image-20200810-145113

Фильтр

image-20210503-095634

Открывает и закрывает поле фильтрации

Поле фильтрации

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

image-20210503-100213

Подробнее о фильтрах можно почитать в статье Окно лога.

Очистка сортировки

image-20210503-101054

Сбрасывает отсортированные переменные.

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

Добавить

image-20210503-103108

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

Имя переменной может состоять из букв латинского алфавита

А также цифр и символа нижнего подчёркивания. Но обязательно должно начинаться с буквы.

Удалить

image-20210503-103728

Удаляет выделенную переменную, предварительно выведя подтверждающее окно. Чтобы выделить переменную достаточно кликнуть по любому месту в строке этой переменной.

Переименовать

Быстрый доступ к переименованию

Двойной клик по строке переменной в области столбца Имя.

Выводит диалоговое окно с возможностью отредактировать имя переменной.

image-20210503-103849

Переименование доступно только для типов Свои и Глобальные.

Имя переменной изменится во всех экшенах, где она используется

Очистка неиспользуемых переменных

image-20210503-104232

Часто в больших проектах создаются переменные, которые позднее никак не участвуют в работе шаблона. Чтобы не занимать место в памяти и визуально не занимать ценное рабочее пространство, можно периодически удалять такие переменные. ZennoPoster найдёт все неиспользуемые переменные и выведет их список с предложением удалить их. Каждую очистку необходимо делать для каждого типа переменных.

Ручная сортировка переменных (Drag & Drop)

Добавлено в ZennoPoster 7.2.1.0

image-20210503-104728

Вы можете расположить переменные так как вам удобно с помощью кнопок Вверх и Вниз, либо с помощью мыши (Drag & Drop).

Свой порядок работает тогда, когда выключена сортировка по столбцам (для этого нажмите на кнопку Очистка сортировки).

Пример

LRgfPjaqKJ

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

Заголовки столбцов

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

Кликнув ПКМ по заголовку любого столбца появится меню в котором можно выбрать отображаемые колонки.

image-20210503-105409

Колонка «Имя»

Если дважды кликнуть по имени переменной

То появится диалоговое окно для переименования.

Здесь отображаются имена переменных используемых в проекте

Имена переменных регистрозависимы

Name, NAME, name - три разных переменных.

Колонка «Значение»

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

Колонка «Значение по-умолчанию»

Если требуется, чтобы при запуске проекта переменная уже имела какое-то значение (при старте проекта все переменные пустые), то необходимо ввести его в это поле.

Переменные окружения, Json и Xml не имеют значений по умолчанию.

Колонка «Примечание»

По умолчанию данная колонка скрыта.

Можно использовать для пометок к переменным. Например, тут можно указать для какой цели используется переменная.

У глобальных переменных есть дополнительный столбец с пространством имён.

Скопировать макрос переменной в буфер обмена

image-20210503-110711

Быстрый способ скопировать макрос типа { -Variable.value- } кликнуть по такой иконке в строке переменной.

Контекстное меню

Доступно для вкладок Свои, Авто и Глобальные.

Кликнув ПКМ напротив переменной появится контекстное меню.

Вкладки Свои и ГлобальныеВкладка Авто
image-20210619-071836image-20210619-071848

Копирование переменных в другой проект

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

  • Откройте старый проект.
  • Кликните правой клавишей мыши на кнопке Переменные проекта в Панели Статических блоков и нажмите Скопировать переменные.

image-20210619-072227

  • Затем откройте новый проект и опять кликните ПКМ → Переменные проекта в Панели Статических блоков и нажмите Вставить переменные.

image-20200810-141550

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

Работа с переменными

Макросы переменных

В ProjectMaker можно использовать переменные посредством макросов, которые имеют вид { -Variable.myVariable- }. Указанный макрос при исполнении проекта передаст значение переменной myVariable. Достаточно вставить макрос переменной в любое поле свойств экшена (там где это возможно) и при исполнении экшена в поле подставится значение соответствующей переменной.

image-20200811-064847

У глобальных переменных нужно указать в макросе область видимости - { -GlobalVariable.someNamespace.text- }

Операции с переменными с помощью C# и JS экшенов

В основном переменные в ZennoPoster бывают трёх типов:

  • Числовые ( 0, 1, 12.652, 10500).
  • Текстовые ("Hello World", "<div>Hello World</div>").
  • Логические (True, False).

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

Например, вот так выглядит приведение строковых переменных в C# к целочисленному (int) типу двумя разными способами, сложение их и возврат в строковую переменную для дальнейшего использования в проекте:

image-20200808-143357

Для операций со строками в кубике JavaScript необходимо текстовые переменные обернуть в кавычки - '{ -Variable.value1- }'

Рекомендации по именованию переменных

Старайтесь давать переменным названия по которым сразу становится понятна задача и область применения переменной. Не нужно называть переменные короткими и бессмысленными именами - f1, qwerty - этим вы значительно усложните исправление и поддержку проекта как для себя, так и для других разработчиков, которые будут иметь доступ к шаблону. Если переменная часто используется в проекте, то желательно назвать её коротко, но понятно - counter, username, proxy. Для названий имеющих в основе два и более слова старайтесь разделять их либо заглавной буквой (secondPassword), либо символом нижнего подчеркивания (page_html).

Это общепринятые практики, которые значительно улучшат читабельность и эффективность работы с вашим проектом.

Присвоение значения

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

image-20200810-142936

В данном примере имя берется из переменной окружения { -Profile.Name- }, день недели из { -TimeNow.DayOfWeek- }, а возраст из своей переменной count. После запуска кубика результат сохраняется в переменной result.

Арифметические операции над числами

Используя синтаксис языка JavaScript и соответствующий кубик можно производить различные математические операции над числами.

image-20200808-141735

В данном случае в переменных value1 и value2 находятся целые числа, которые нужно сложить и потом умножить на 10. Результат вычислений попадает в переменную result.

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

Старайтесь использовать переменные вместо жёстко прописанного текста в тех местах, где значение может когда-то измениться.

В качестве примера можно привести пути файлов - на Вашем компьютере путь один, а у клиента он другой. Если необходимый файл находится в одной директории с проектом (или в одной из его поддиректорий) то хорошим решением будет использовать макрос { -Project.Directory- } - путь к директории где сохранён шаблон. Вот как может выглядеть путь - { -Project.Directory- }file.txt

Полезные ссылки