Skip to content

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

Важно

Функциональность доступна только в серверной версии ТестОпс.

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

Скрипты выполняются для всех пользователей при открытии ТестОпс в браузере. ТестОпс не передает во встроенный код данные из приложения.

Внимание

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

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

При запуске инстанса скрипт встраивается в виде HTML-фрагмента в главный файл интерфейса ТестОпс — index.html.

Скрипт можно добавлять в одно из двух мест файла:

  • в начало секции <head> — для ранней инициализации (например, чтобы отправлять данные о просмотре страницы в SPA-приложениеSPA-приложение — веб-приложение, в котором интерфейс обновляется без перезагрузки страницы в браузере);
  • в начало секции <body> — для кода, который должен выполняться до загрузки основного приложения.

Для каждого из этих мест можно указать полный код скрипта через переменные CUSTOM_HEAD_SCRIPT и CUSTOM_BODY_SCRIPT или добавить путь к файлу с этим скриптом через переменные CUSTOM_HEAD_SCRIPT_PATH и CUSTOM_BODY_SCRIPT_PATH. Если используются оба варианта, приоритет имеет переменная вида <...>_SCRIPT_PATH — скрипт загружается только из файла по указанному пути.

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

Добавление пользовательского скрипта через переменную CUSTOM_HEAD_SCRIPT или CUSTOM_BODY_SCRIPT

  1. В файле values.yaml:

    1. Добавьте нужную переменную в секцию env.open (или в секцию, где задаются переменные окружения сервиса testops):

      • CUSTOM_HEAD_SCRIPT — для добавления скрипта в начало секции <head>;
      • CUSTOM_BODY_SCRIPT — для добавления скрипта в начало секции <body>.
    2. В указанной переменной введите код скрипта полностью, включая теги <script> и </script>, например:

      yaml
      env:
        open:
          CUSTOM_BODY_SCRIPT: |
            <script>
              // код скрипта
            </script>
  2. Сохраните изменения и перезапустите ТестОпс.

Добавление пользовательского скрипта через переменную CUSTOM_HEAD_SCRIPT_PATH или CUSTOM_BODY_SCRIPT_PATH

Примечание

Файл должен содержать полный код скрипта, включая теги <script> и </script>.

  1. Рядом с файлом values.yaml создайте файл configmap.yaml:

    1. Введите описание для ConfigMapОбъект Kubernetes для хранения конфигурационных данных в виде пар «ключ — значение». Данные из ConfigMap можно смонтировать в контейнер как файлы, указав в секции data название файла со скриптом и код скрипта полностью, например:

      yaml
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: testops-custom-scripts
        namespace: testops
      data:
        custom-body.html: |
          <script>
            // код скрипта
          </script>
    2. Сохраните изменения.

  2. В этой же директории создайте ConfigMap в кластере, выполнив команду:

    sh
    kubectl apply -f configmap.yaml
  3. Смонтируйте ConfigMap в под сервиса testops с помощью команды kubectl patch, например:

    bash
    kubectl -n testops patch deployment testops-testops --type=strategic -p '
    spec:
      template:
        spec:
          containers:
            - name: testops
              volumeMounts:
                - name: custom-scripts
                  mountPath: /etc/testops/custom-scripts
                  readOnly: true
          volumes:
            - name: custom-scripts
              configMap:
                name: testops-custom-scripts
    '
  4. Дождитесь перезапуска пода.

  5. В файле values.yaml:

    1. Добавьте нужную переменную в секцию env.open (или в секцию, где задаются переменные окружения сервиса testops):

      • CUSTOM_HEAD_SCRIPT_PATH — для добавления скрипта в начало секции <head>;
      • CUSTOM_BODY_SCRIPT_PATH — для добавления скрипта в начало секции <body>.
    2. В указанной переменной введите абсолютный путь к файлу со скриптом внутри контейнера. Путь должен совпадать с каталогом монтирования ConfigMap и именем ключа в секции data, например:

      yaml
      env:
        open:
          CUSTOM_BODY_SCRIPT_PATH: /etc/testops/custom-scripts/custom-body.html
  6. Сохраните изменения и перезапустите ТестОпс.

Проверка работы пользовательского скрипта

  1. Откройте ТестОпс в вашем браузере.

  2. В терминале в логах сервиса testops проверьте записи о встраивании скрипта:

    • The index.html has been successfully modified. — ТестОпс успешно обработал файл index.html.
    • Injected custom head script from ... или Injected custom body script from ... — скрипт встроен в секцию <head> или <body> соответственно.
  3. Откройте инструменты разработчика в вашем браузере.

  4. На вкладках Console и Network проверьте, что скрипт работает без ошибок и отправляет встроенные в него запросы.

Устранение неполадок

Скрипт не встраивается в файл index.html

Если в логах сервиса testops отображается запись The index.html has been successfully modified., но нет строки Injected custom head script from ... или Injected custom body script from ..., проверьте:

Если файл скрипта недоступен, в логах отобразится запись Failed to read custom head script from path или Failed to read custom body script from path.

Скрипт не отправляет запросы

Расширения для блокировки рекламы (например, Adblock Plus) могут блокировать запросы скрипта к внешним сервисам.

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

Logo © 2026 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»