simple_scan - scan a set of Web pages for strings present/absent
simple_scan [--generate] [--run] {file file file ...}
# Run the tests in the files supplied on the command line. # --run (or -run; we're flexible) is assumed if you give no switches. % simple_scan file1 file2 file3 # Generate a set of tests and save them, then run them. % <complex pipe> | simple_scan --generate > pipe_scan.t # Run one simple test % echo "http://yahoo.com yahoo Y Look for yahoo.com" | simple_scan -run
simple_scan reads either files supplied on the command line, or standard input. It creates and runs, or prints, or even both, a Test::WWW::Simple test for the criteria supplied to it.
simple_scan
simple_scan's input should be in the following format:
<URL> <pattern> <Y|N> <comment>
The URL is any URL; pattern is a Perl regular expression, delimited by slashes; Y|N is Y if the pattern should match, or N if the pattern should not match; and comment is any arbitrary text you like (as long as it's all on the same line as everything else).
Y
N
We use Getopt::Long to get the command-line options, so we're really very flexible as to how they're entered. You can use either one dash (as in -foo) or two (as in --bar). You only need to enter the minimum number or characters to match a given switch.
-foo
--bar
--run
--run tells simple_scan to immediately run the tests it's created. Can be abbreviated to -r.
-r
This option is mosst useful for one-shot tests that you're not planning to run repeatedly.
--generate
--generate tells simple_scan to print the test it's generated on the standard output.
This option is useful to build up a test suite to be reused later.
Both -r and -g can be specified at the same time to run a test and print it simultaneously; this is useful when you want to save a test to be run later as well as right now without having to regenerate the test.
-g
Pragmas are ways to influence what simple_scan does when generating tests. They don't output anything themselves.
Pragmas are specified with %% in column 1 and the pragma name immediately following. Any arguments aer supplied after a colon, like this:
%%
%%foo: bar baz
This invokes the foo pragma with the argument bar baz.
foo
bar baz
The xx pragma allows for very simple-minded internationalization. It assumes that you want to substitute each of a list of two-character country codes into a string (most likely somewhere in the URL, but possibly in the comment too). simple_scan will do this for you, creating a test for each country code you specify. For instance:
xx
%%xx: es au my jp http://>xx<.mysite.com/ /blargh/ Y look for blargh (>xx<)
This would generate 4 tests, for es.mysite.com, au.mysite.com, c<my.mysite.com>, and jp.mysite.com, all looking to match blargh somewhere on the page.
es.mysite.com
au.mysite.com
jp.mysite.com
blargh
The agent pragma allows you to switch user agents during the test. Test::WWW::Simple's default is Windows IE 6, but you can switch it to any of the other user agents supported by WWW::Mechanize.
agent
Test::WWW::Simple
Windows IE 6
WWW::Mechanize
http://gemal.dk/browserspy/basic.html /Explorer/ Y Should be Explorer %%agent: Mac Safari http://gemal.dk/browserspy/basic.html /Safari/ Y Should be Safari
Joe McMahon <mcmahon@yahoo-inc.com>
Copyright (c) 2005 by Yahoo!
This script is free software; you can redistribute it or modify it under the same terms as Perl itself, either Perl version 5.6.1 or, at your option, any later version of Perl 5 you may have available.
To install Test::WWW::Simple, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::WWW::Simple
CPAN shell
perl -MCPAN -e shell install Test::WWW::Simple
For more information on module installation, please visit the detailed CPAN module installation guide.