Here's how you use testclient (for now...):

First, you have to give an option indication what you want to do -- "-r" for Request or "-i" for Insert. The last argument should be the freenet: URI to request or insert. Of course, you only decide the key of something you're inserting when it's a KSK, so if you're not inserting a KSK, you have to give a lame fake URI like InsertClient uses. That will change soon, because it's stupid.

So, a simple request:
testclient -r freenet:KSK@foo

For insert, you also need to use the "-f" option to specify a file to read the data from, so a basic insert looks like this:
testclient -i -f decss.zip freenet:KSK@foo

Here are the other options, and their meanings:

-a [address] Talk to the node at "address" (defaults to localhost)
-p [port] Talk to the node at "port" (defaults to 19114)
-h [hopstolive] Use the given hops-to-live (defaults to 5)
-b Use buffer-based functions rather than stream-based functions (for testing).
-d Display metadata.
-m [len] On insert, use the first "len" bytes of the file as metadata.