xenial (1) varnishtest.1.gz

Provided by: varnish_4.1.1-1ubuntu0.2_amd64 bug

NAME

       varnishtest - Test program for Varnish

SYNOPSIS

       varnishtest [-hikLlqvW] [-b size] [-D name=val] [-j jobs] [-n iter] [-t duration] file [file ...]

DESCRIPTION

       The varnishtest program is a script driven program used to test the Varnish Cache.

       The  varnishtest program, when started and given one or more script files, can create a number of threads
       representing backends, some threads representing clients, and a varnishd process. This is  then  used  to
       simulate a transaction to provoke a specific behavior.

       The following options are available:

       -b size
              Set internal buffer size (default: 512K)

       -D name=val      Define macro for use in scripts

       -h     Show help

       -i     Find varnishd in build tree

       -j jobs
              Run this many tests in parallel

       -k     Continue on test failure

       -L     Always leave temporary vtc.*

       -l     Leave temporary vtc.* if test fails

       -n iterations
              Run tests this many times

       -q     Quiet mode: report only failures

       -t duration
              Time tests out after this long

       -v     Verbose mode: always report test log

       -W     Enable the witness facility for locking

       file             File to use as a script

       Macro definitions that can be overridden.

       varnishd         Path to varnishd to use [varnishd]

       If  TMPDIR  is  set  in the environment, varnishtest creates temporary vtc.* directories for each test in
       $TMPDIR, otherwise in /tmp.

SCRIPTS

       The script language used for Varnishtest is not a strictly  defined  language.  The  best  reference  for
       writing  scripts  is  the  varnishtest  program  itself.  In  the  Varnish  source code repository, under
       bin/varnishtest/tests/, all the regression tests for Varnish are kept.

       An example:

       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

       When run, the above script will simulate a server (s1) that expects two different requests. It will start
       a  Varnish  server  (v1)  and  add the backend definition to the VCL specified (-vcl+backend). Finally it
       starts the c1-client, which is a single client sending two requests.

SEE ALSO

       • varnishtest source code repository with tests

       • varnishhist(1)varnishlog(1)varnishncsa(1)varnishstat(1)varnishtop(1)vcl(7)

HISTORY

       The varnishtest program was developed by  Poul-Henning  Kamp  <phk@phk.freebsd.dk>  in  cooperation  with
       Varnish  Software  AS.  This manual page was originally written by Stig Sandbeck Mathisen <ssm@linpro.no>
       and updated by Kristian Lyngstøl <kristian@varnish-cache.org>.

       This document is licensed under the same licence as Varnish itself. See LICENCE for details.

       • Copyright (c) 2007-2015 Varnish Software AS

                                                                                                  VARNISHTEST(1)