Если вы легко работаете с командной оболочкой, то на некоторых платформах можно также протестировать сценарии CGI из командной строки, установив переменные окружения так же, как это делают серверы HTTP, и затем запуская свой сценарий. Например, можно прикинуться веб-сервером, записав входные параметры в переменную окружения QUERY_STRING, применив тот же синтаксис, который используется в конце строки URL после ?:
$ setenv QUERY_STRING "name=Mel&job=trainer,+writer"
$ python tutor5.py
Content type: text/html
<TITLE>tutor5.py<?TITLE>
<H1>Greetings</H1>
<HR>
< H4>Your name is Mel</H4>
< H4>You wear rather (unknown) shoes</H4>
< H4>Your current job: trainer, writer</H4>
< H4>You program in (unknown)</H4>
< H4>You also said:</H4>
<P>(unknown)</P>
< HR>
Здесь мы имитируем отправку формы в стиле GET или явную передачу параметров в адресе URL. Серверы HTTP помещают строку запроса (параметры) в переменную оболочки QUERY_STRING. Модуль Python cgi обнаруживает их там, как если бы они были переданы броузером. Передачу данных в стиле POST тоже можно имитировать с помощью переменных оболочки, но это сложнее, и лучше было бы не пытаться узнать, как это сделать. В действительности имитация ввода с помощью объектов Python (как в formMockup.py) должна работать надежнее. Но для некоторых сценариев CGI могут существовать дополнительные ограничения окружения или тестирования, требующие особой обработки.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011