Инструмент тестирования LOSTHOST (LHTT)

Инструмент LOSTHOST Testing Tool представляет собой удобную утилиту для определения наборов тестов, которая позволяет осуществлять тестовые GET и POST запросы к любым онлайн сервисам и проверять полученные от них ответы.

Этот инструмент можно найти на нашем сайте

Описание утилиты будет немного позже, когда утрясётся формат используемого определения тестов. Сейчас просто для примера описание небольшого теста API Telegram:

<testdef>
    <testset name="Тестирование телеграм API" 
                method="get" url="https://api.telegram.org/">
        <test>
            <query>bot541872557:AAGfSzUePVCCdAspdqeyVwrXIbiccg2Cwi4/getMe</query>
            <result>
                <code>401</code>
                <content format="json">
                    {"ok":false,"error_code":401,"description":"Unauthorized"}
                </content>
            </result>
        </test>
        <test>
            <query>bot123/getMe</query>
            <result>
                <code>404</code>
                <content format="raw">
                    {"ok":false,"error_code":404,"description":"Not Found"}
                </content>
            </result>
        </test>
        <test>
            <query>bot123/getMe</query>
            <result>
                <code>404</code>
                <content format="json">
                    {"error_code":404,"ok":false,"description":"Not Found"}
                </content>
            </result>
        </test>
    </testset>
</testdef>

Более сложный пример с POST-запросом и анализом ошибочного ответа сайта через регулярное выражение

<testdef>
    <testset name="Тестирование плагина на сайте" method="post" url="https://www.losthost.online/lhtt/">
        <test>
            <postbody><![CDATA[xml=<<<]]></postbody>
            <result>
                <code>200</code>
                <content format="raw" regex="yes">
                    /String could not be parsed as XML/u
                </content>
            </result>
        </test>
    </testset>
    <testset name="Тестирование API Bill Manager" 
                method="get" url="https://billing.losthost.online/billmgr?">
        <test>
            <query>func=auth&amp;out=xml</query>
            <result>
                <code>200</code>
                <content format="xml">
                    <doc>
                        <error type="auth" object="badpassword" lang="ru" code="1">
                            <param name="object" type="msg">badpassword</param>
                            <param name="value"/>
                            <stack>
                                <action level="0" user="">auth</action>
                            </stack>
                            <msg>Неверное имя пользователя или пароль</msg>
                            <detail>Неверное имя пользователя или пароль</detail>
                        </error>
                    </doc>
                </content>
            </result>
        </test>
    </testset>
    <testset name="Тестирование телеграм API" method="get" url="https://api.telegram.org/">
        <test>
            <query>bot541872557:AAGfSzUePVCCdAspdqeyVwrXIbiccg2Cwi4/getMe</query>
            <result>
                <code>401</code>
                <content format="json">{
                    "ok":false,
                    "error_code":401,
                    "description":"Unauthorized"
                }</content>
            </result>
        </test>
        <test>
            <query>bot123/getMe</query>
            <result>
                <code>404</code>
                <content format="raw">{
                    "ok":false,
                    "error_code":404,
                    "description":"Not Found"
                }</content>
            </result>
        </test>
        <test>
            <query>bot123/getMe</query>
            <result>
                <code>404</code>
                <content format="json">{
                    "error_code":404,
                    "ok":false,
                    "description":"Not Found"
                }</content>
            </result>
        </test>
    </testset>
</testdef>

Здесь приведен результат работы последнего примера. Красным отмечено на что обратить внимание:

Тестирование плагина на сайте.[.]: ok
Тестирование API Bill Manager.[.]: ok
Тестирование телеграм API.[.0.]: Error
Описание ошибок             ^
(                           +------- Здесь возникла ошибка (второй тест набора)
    [ERROR_0] => Array   <---------- Описание ошибки с индексом 
        (
            [Описание] => Получен не верный ответ
            [Получено] => {"ok":false,"error_code":404,"description":"Not Found"}
            [Ожидалось] => { <------ В описании теста format="raw" из-за этого ошибка
                    "ok":false,
                    "error_code":404,
                    "description":"Not Found"
                }
        )

)