=========== varnishtest =========== ------------------------ Test program for Varnish ------------------------ :Author: Stig Sandbeck Mathisen :Author: Kristian Lyngstøl :Date: 2011-11-15 :Version: 1.1 :Manual section: 1 SYNOPSIS ======== varnishtest [-iklLqv] [-n iter] [-D name=val] [-j jobs] [-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: -D name=val Define macro for use in scripts -i Find varnishd in build tree -j jobs Run this many tests in parallel -k Continue on test failure -l Leave /tmp/vtc.* if test fails -L Always leave /tmp/vtc.* -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 -h Show help file File to use as a script Macro definitions that can be overridden. varnishd Path to varnishd to use [varnishd] 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 {

FOOBARF

} } -start varnish v1 -vcl+backend { sub vcl_fetch { set beresp.do_esi = true; if (req.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). COPYRIGHT ========= This document is licensed under the same licence as Varnish itself. See LICENCE for details. * Copyright (c) 2007-2011 Varnish Software AS