varnishtest (1) Linux Manual Page
NAME
varnishtest – Test program for Varnish
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
-jjobs - Run this many tests in parallel
-k- Continue on test failure
-l- Leave temporary vtc.* if test fails
-L- Always leave temporary vtc.*
-niterations - Run tests this many times
-q- Quiet mode: report only failures
-tduration - 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]
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 [at] phk.freebsd.dk> in cooperation with Varnish Software AS. This manual page was originally written by Stig Sandbeck Mathisen <ssm [at] linpro.no> and updated by Kristian Lyngstøl <kristian [at] varnish-cache.org>.
COPYRIGHT
This document is licensed under the same licence as Varnish itself. See LICENCE for details.
- •
- Copyright (c) 2007-2014 Varnish Software AS
