Spec-Zone.ru › Varnish

varnishtest

Программа тестирования Varnish

Раздел руководства:

1

СИНТЕЗ

varnishtest [-hikLlqv] [-b размер] [-D имя=значение] [-j задания] [-n итерации] [-t длительность] файл [файл …]

ОПИСАНИЕ

Программа varnishtest — это управляемая скриптом программа, используемая для тестирования кэша Varnish.

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

Доступны следующие параметры:

-b размер

Установить размер внутреннего буфера (по умолчанию: 1 МБ)

-D имя=значение Определить макрос для использования в скриптах

-h

Показать справку

-i

Установить PATH и vmod_path для поиска бинарников varnish в дереве сборки

-j задания

Выполнить заданное количество тестов параллельно

-k

Продолжать при ошибке теста

-L

Всегда оставлять временные файлы vtc.*

-l

Оставить временные файлы vtc.* при ошибке теста

-n итерации

Выполнить тесты указанное количество раз

-p имя=значение Передать параметры всем командным строкам varnishd

-q

Режим без вывода: сообщать только об ошибках

-t длительность

Прервать тесты после указанного времени (по умолчанию: 60 секунд)

-v

Подробный режим: всегда сообщать о журнале теста

файл Файл, используемый в качестве скрипта

Если в окружении установлено TMPDIR, varnishtest создает временные vtc.* каталоги для каждого теста в $TMPDIR, иначе в /tmp.

СЦЕНАРИИ

Синтаксис vtc подробно описан в VTC. Если вам нужны примеры помимо приведенного ниже, вы можете обратиться к репозиторию исходного кода Varnish, в bin/varnishtest/tests/, где хранятся все регрессионные тесты Varnish.

Пример:

varnishtest "#1029"

server s1 {
        rxreq
        expect req.url == "/bar"
        txresp -gzipbody {[bar]}

        rxreq
        expect req.url == "/foo"
        txresp -body {<h1>FOO<esi:include src="/bar"/>BARF</h1>}

} -start

varnish v1 -vcl+backend {
        sub vcl_backend_response {
                set beresp.do_esi = true;
                if (bereq.url == "/foo") {
                        set beresp.ttl = 0s;
                } else {
                        set beresp.ttl = 10m;
                }
        }
} -start

client c1 {
        txreq -url "/bar" -hdr "Accept-Encoding: gzip"
        rxresp
        gunzip
        expect resp.bodylen == 5

        txreq -url "/foo" -hdr "Accept-Encoding: gzip"
        rxresp
        expect resp.bodylen == 21
} -run

При выполнении приведенного выше скрипта будет смоделирован сервер (s1), который ожидает два различных запроса. Он запустит сервер Varnish (v1) и добавит определение бэкенда в указанный VCL (-vcl+backend). Наконец, он запустит c1-клиент, который представляет собой единственного клиента, отправляющего два запроса.

ТЕСТИРОВАНИЕ ДЕРЕВА СБОРКИ

Если вы создаёте VMOD или пытаетесь использовать недавно созданный, вы можете указать varnishtest для передачи vmod_path в экземпляры varnishd, запущенные с помощью команды varnish -start в вашем тестовом случае:

varnishtest -p vmod_path=... /path/to/*.vtc

Таким образом, вы можете использовать те же тестовые сценарии как для установленных, так и для собранных VMOD:

server s1 {...} -start

varnish v1 -vcl+backend {
    import wossname;

    ...
} -start

...

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

Вы можете увидеть фактические varnishd командные строки в результатах тестов, примерно так:

exec varnishd [varnishtest -p params] [testing params] [vtc -arg params]

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

Также существует специальный режим, в котором varnishtest сам строит PATH и vmod_path для поиска бинарных файлов Varnish (программ и VMOD) в дереве сборки вокруг бинарного файла varnishtest. Это предназначено для тестирования Varnish во время разработки и проигнорирует ваш vmod_path, если вы его зададите.

Если вам нужно протестировать ваш VMOD на основе дерева сборки Varnish, вы должны его сначала установить, например, во временной директории. Используя информацию, предоставленную установкой с помощью pkg-config(1), вы можете создать правильный PATH для доступа к программам Varnish и vmod_path для доступа к вашему VMOD и встроенным VMOD:

export PKG_CONFIG_PATH=/path/to/install/lib/pkgconfig

BINDIR="$(pkg-config --variable=bindir varnishapi)"
SBINDIR="$(pkg-config --variable=sbindir varnishapi)"
PATH="SBINDIR:BINDIR:$PATH"

VMODDIR="$(pkg-config --variable=vmoddir varnishapi)"
VMOD_PATH="/path/to/your/vmod/build/dir:$VMODDIR"

varnishtest -p vmod_path="$VMOD_PATH" ...

СМОТРИТЕ ТАКЖЕ

  • Репозиторий исходного кода varnishtest с тестами
  • varnishhist
  • varnishlog
  • varnishncsa
  • varnishstat
  • varnishtop
  • VCL
  • VTC
  • VMOD vtc — модуль утилит для varnishtest

ИСТОРИЯ

Программа varnishtest была разработана Poul-Henning Kamp <phk@phk.freebsd.dk> в сотрудничестве с Varnish Software AS. Данная страница руководства была первоначально написана Stig Sandbeck Mathisen <ssm@linpro.no> и обновлена Kristian Lyngstøl <kristian@varnish-cache.org>.

АВТОРСКИЕ ПРАВА

Данный документ лицензирован под той же лицензией, что и сам Varnish. Подробности см. в файле LICENCE.

  • Авторские права (c) 2007-2016 Varnish Software AS

Copyright © 2006 Verdens Gang AS
Copyright © 2006–2020 Varnish Software AS
Licensed under the BSD-2-Clause License.
https://varnish-cache.org/docs/7.4/reference/varnishtest.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API