Почему TestComplete постоянно меняет имя изображения статуса

Я хочу программно анализировать журналы TestComplele 7. В частности, я хочу получить имена и статусы (успех \ сбой \ предупреждение) каждого теста.

Согласно руководству, я использую следующую команду для получения журналов тестовых запусков:

Log["SaveResultsAs"] ("PathToMyFolder", 1);

Это создает кучу файлов и папок, включая XML, которые могут быть проанализированы моим скриптом. Вот пример такого XML:

<ProjectLog>
  <ProjectLogItem id="0" pid="-1" nety="False">
    <Status>805039D.gif</Status>
    <No>1</No>
    <Name><![CDATA[Script Test Log [cTaStoring\cTaStoring_Start]]]></Name>
    <StartTime>13.04.2012 12:26:15</StartTime>
    <EndTime>13.04.2012 12:27:47</EndTime>
    <RunTime>0:01:32</RunTime>
    <Details></Details>
    <Messages/>
   </ProjectLogItem>
   <ProjectLogItem id="1" pid="-1" nety="False">
    <Status>905039C.gif</Status>
    <No>2</No>
    <Name><![CDATA[AutomaticStoring]]></Name>
    <StartTime>13.04.2012 12:27:47</StartTime>
    <EndTime>13.04.2012 12:30:42</EndTime>
    <RunTime>0:02:55</RunTime>
    <Details></Details>
    <Messages/>
   </ProjectLogItem>
</ProjectLog>

Как видите, я могу получить почти все, что хочу, но самая ценная часть данных, статус теста, записывается как имя файла изображения с соответствующим значком! Например. 805039D.gif содержит галочку, а 905039C.gif содержит восклицательный знак.

Было бы легко жестко запрограммировать эти имена в моих скриптах, но проблема в том, что они постоянно меняются!

Вопросы:

  1. Почему они решили использовать имена изображений вместо некоторого перечисления для вывода статусов?
  2. Почему иконы меняют свои имена?
  3. Как получить статусы тестов?

person Monsignor    schedule 13.04.2012    source источник


Ответы (2)


Меня больше всего раздражала та же проблема. Поэтому я написал это на C #, чтобы решить эту проблему:

Я бы получил длину файла, к которому относится изображение, а затем

            if (b.Length == 610) status = "Pass";
            if (b.Length == 1016) status = "Fail";
            if (b.Length == 353) status = "Inconclusive";

Итак, если файл, на который он ссылается, имеет длину 610, тогда проходите и т. Д.

person Dan Sagmiller    schedule 23.05.2012

HTML-формат экспортируемых журналов не предназначен для анализа. Если вы хотите анализировать экспортированные журналы, вам необходимо использовать формат XML:

Log["SaveResultsAs"] ("PathToMyResultsXMLFile", lsXML);

Вот пример фрагмента сгенерированного файла журнала:

<Node name="message 0">
  <Prp name="date" type="D" value="41012.4210564815"/>
  <Prp name="priority" type="I" value="300"/>
  <Prp name="owner id" type="I" value="-1"/>
  <Prp name="color" type="I" value="-252645136"/>
  <Prp name="id" type="I" value="0"/>
  <Prp name="bkcolor" type="I" value="-252645136"/>
  <Prp name="message" type="S" value="This is a usual message"/>
  <Prp name="picture" type="S" value=""/>
  <Prp name="link" type="S" value=""/>
  <Prp name="unit id" type="I" value="0"/>
  <Prp name="remarks" type="S" value=""/>
  <Prp name="type" type="I" value="0"/>
  <Prp name="line no" type="I" value="2"/>
  <Prp name="child index" type="I" value="-1"/>
</Node>

Порядок сообщений определяется полем «id», а тип сообщения понижается в поле «type».

0 - Message
1 - Event
2 - Warning
3 - Error
person Dmitry Nikolaev    schedule 13.04.2012
comment
Извините, я не могу согласиться с тем, что этот формат не предназначен для анализа. Согласно документации TestComplete support.smartbear.com/viewarticle/10992 Используя данную схему, мы может анализировать XML-файлы, содержащие экспортированные результаты, желаемым образом. Для этого можно использовать любой анализатор XML. Кроме того, формат журнала HTML намного более читабелен, чем формат XML, что довольно странно. И я не вижу никакой пользы от использования этого псевдо-XML, поскольку результат экспорта состоит из множества файлов, как и в случае с HTML. - person Monsignor; 16.04.2012
comment
Спасибо, что указали на эту тему. Я считаю, что это проблема в документации, и этот формат (распакованное хранилище) не следует описывать как рекомендуемый для анализа. Я собираюсь сообщить об этом SmartBear как о проблеме. - person Dmitry Nikolaev; 16.04.2012
comment
Кстати, какую именно информацию вы хотите получить при анализе журналов? Если вам просто нужно получить сводную информацию о выполнении текущего теста проекта, вы можете найти образец сценария, демонстрирующий, как это получить, здесь: support.smartbear.com/viewarticle/9047 - person Dmitry Nikolaev; 16.04.2012
comment
Я хочу получить информацию о каждом тесте: его название, статус, продолжительность и сообщение об ошибке. Как я понял, упомянутый вами сценарий выведет дерево результатов, но мне нужен простой вид. P.S. в настоящее время я разбираю журналы с помощью PowerShell. - person Monsignor; 16.04.2012
comment
Я думаю, что нетрудно изменить сценарий, чтобы он генерировал простые результаты, а не дерево. Раньше я использовал этот сценарий для создания краткого отчета о тестировании, а затем отправлял его по электронной почте в конце выполнения теста (в последнем элементе теста). К сожалению, я никогда не видел версии этого скрипта для PowerShell. - person Dmitry Nikolaev; 16.04.2012