yaz-ztest

8 System management commands

yaz-ztest

Z39.50/SRU Test Server

&gfs-synopsis;

## DESCRIPTION

`yaz-ztest` is a Z39.50/SRU test server that uses the YAZ generic front-end server (GFS) API. The server acts as a real Z39.50/SRU server but does not use a database. It returns a random hit count and returns a subset of a few built-in records.

The `listener-spec` consists of a transport mode followed by a colon, followed by a listener address. The transport mode is either `tcp`, `unix`, or `ssl`.

For TCP and SSL, an address has the form:

        hostname | IP-number [ : portnumber ]

For UNIX local socket, the address is the filename of the local socket.

## OPTIONS

&gfs-options;

## TESTING

`yaz-ztest` normally returns a random hit count between 0 and 24. However, if a query term includes leading digits, then the integer value of that term is used as hit count. This allows testers to return any number of hits. `yaz-ztest` includes 24 MARC records for testing. Hit counts exceeding 24 will make `yaz-ztest` return the same record batch over and over. So record at position 1, 25, 49, etc. are equivalent.

For XML, if no element set is given or element has value "marcxml", MARCXML is returned (each of the 24 dummy records converted from ISO2709 to XML). For element set OP, then OPAC XML is returned.

yaz-ztest may also return predefined XML records (for testing). This is enabled if `YAZ_ZTEST_XML_FETCH` environment variable is defined. A record is fetched from a file (one record per file). The path for the filename is `F` `E``.``d``.xml` where `F` is the YAZ_ZTEST_XML_FETCH value (possibly empty), `E` is element-set, `d` is record position (starting from 1).

The following databases are honored by `yaz-ztest`: `Default`, `slow` and `db.*` (all databases with prefix "db"). Any other database will make `yaz-ztest` return diagnostic 109: "Database unavailable".

Options for search may be included in the form or URL get arguments included as part of the Z39.50 database name. The following database options are present: `search-delay`, `present-delay`, `fetch-delay` and `seed`.

The former, delay type options, specify a fake delay (sleep) that `yaz-ztest` will perform when searching, presenting, fetching records respectively. The value of the delay may either be a fixed floating point value which specifies the delay in seconds. Alternatively the value may be given as two floating point numbers separated by colon, which will make `yaz-ztest` perform a random sleep between the first and second number.

The database parameter `seed` takes an integer as value. This will call `srand` with this integer to ensure that the random behavior can be re-played.

Suppose we want searches to take between 0.1 and 0.5 seconds and a fetch to take 0.2 second. To access test database Default we'd use: `Default?search-delay=0.1:0.5&fetch-delay=0.2`.

## GFS CONFIGURATION AND VIRTUAL HOSTS

&gfs-virtual;

## FILES

`yaz-<version>/ztest/yaz-ztest.c`

`yaz-<version>/include/yaz/backend.h`

## SEE ALSO

yaz

7

yaz-log

7