RECT/Tests/Reports

Материал из Etersoft wiki
Перейти к: навигация, поиск
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.




Обработка результатов тестирования

Представление результата одного теста в виде xml

Решено было результат каждого теста хранить в xml-формате.


При проведении тестирования на данный момент создается директория results_xml, в ней директория с именем, соответствующим дате проведения тестирования, а в ней еще одна директория с именем results + трехзначное число, равное порядковому номеру проведения в этот день тестирования. Сделано это для отделения результатов одних и тех же тестов друг от друга. Впоследствии имена поддиректорий, особенно последней, будут изменены на более "красивые".


Описание теста помещается в тег TESTDATA, который включает следующие тэги

  • TIMENDATE - время проведения теста
  • SHARES - используемые тестом серверов
  • SLAVES - используемые тестом клиентов
  • TEST - сам теста
  • RESULT - результат теста


TIMENDATE включает следующие тэги:

  • STARTTIME - начало выполнения всего suite, в котором находился сам тест
  • TESTTIME - время прохождения этого теста
  • DATE - дата проведения этого теста


SHARES включает следующие тэги:

  • SHARE - описание каждого сервера тэгами:
    • DESCRIPTION
    • SYSINFO - значение указываемого параметра для share в yaml-конфиге. Значение по умолчанию - Windows.


SLAVES включает следующие тэги:

  • SLAVE - описание каждого клиента тэгами:
    • DESCRIPTION
    • MOUNTOPTIONS, включающий тэги:
      • OPTION с аттрибутами name, равному вводимой опции, и value, равному значению опции, если оно есть
    • SYSINFO - значение указываемого параметра для share в yaml-конфиге. Значение по умолчанию - Windows. Аттрибутами данного тэга являются Cifstype, Sysname, Nodename, Release, Version, Machine, значения которых есть вывод slave.sysinfo()

TEST включает следующие тэги:

  • NAME с аттрибутами modulename(имя модуля), classname(имя класса), methodname(имя самого теста)
  • DESCRIPTION с аттрибутами shortdescr(краткое описание), fulldescr(полное описание)


RESULT включает следующие тэги:

  • EXCEPTION, если тест упал, с аттрибутами code и reason

У тэга RESULT есть аттрибут value, равный значению результата теста (OK, FAIL, ERROR)


Пример xml
<TESTDATA>

  <TIMENDATE>

    <STARTTIME>16:59:52</STARTTIME>

    <TESTTIME>0.0398</TESTTIME>

    <DATE>2009-01-22</DATE>

  </TIMENDATE>

  <SHARES>

    <SHARE sys="L">

      <DESCRIPTION>//server/upload</DESCRIPTION>

      <SYSINFO>Linux</SYSINFO>

    </SHARE>

  </SHARES>

  <SLAVES>

    <SLAVE sys="L">

      <DESCRIPTION>LS -t:tcp -h localhost -p 13666 -t 10000</DESCRIPTION>

      <MOUNTOPTIONS>

        <MOUNTOPTION name="noperm" value=""/>

        <MOUNTOPTION name="guest" value=""/>

        <MOUNTOPTION name="setuids" value=""/>

        <MOUNTOPTION name="forcemand" value=""/>

      </MOUNTOPTIONS>

      <SYSINFO Cifstype="CIFSETER" Sysname="Linux" Nodename="ximinez.saratov.etersoft.ru" Release="2.6.27-std-def-alt2" Version="#1 SMP Mon Nov 10 17:47:17 UTC 2008" Machine="i686">Linux</SYSINFO>

    </SLAVE>

  </SLAVES>

  <TEST>

    <NAME modulename="SetLockLL" classname="SingleSetLockOnLockL" methodname="testSetWriteLockOnReadLock"/>

    <DESCRIPTION shortdescr="Set a write lock on a read lock (Denied) (shares: ['share1'], slaves: ['slave1'])" fulldescr="Set a write lock on a read lock (Denied) (shares: ['share1'], slaves: ['slave1'])"/>

  </TEST>

  <RESULT value="FAIL">

    <EXCEPTION code="<type 'exceptions.AssertionError'>" reason="Error not raised"/>

  </RESULT>

</TESTDATA>


Представление обработки результатов

Обработка полученных xml-к планируется следующая("+" отмечено, что сделано):

  • join - комбинирование их в одну xml-ку (+)
  • split - соответственно разбиение полученной ранее общей xml-ки на отдельные тесты(+)
  • compare - сравнение полученных (замечу: как общую xml-ку, так и отдельные xml-ки) xml-к, т.е. получение таблицы с результатами о всех выбранных тестах (+)


Общий вид использования сейчас:

xml-run <option> -i <list_of_xml>

где <option>  это ['join', 'split', 'compare']


Правда для опции compare вид команды такой:

xml-run <option> -m <mode> -i <list_of_xml>

где <mode> это ['html'(+), 'txt', 'wiki'(+)] - формат конечного отчета. Сделано пока только для html, wiki.

Если не указывать -m <mode>, по умолчанию отчет будет генерироваться в виде html


Необязательным параметром команды для опции join и compare является также '-o' <result_file> - для указания выходного файла.


Пока конечный результат для html выглядит как страница с 2 таблицами: первая с самими результатами, вторая с перечислением используемых конфигов.


Ссылки

RECT - RECT

RECT- описание тестов

RECT- запуск тестов

RECT - результаты тестирования