Могу ли я автоматически вызывать тестовые костюмы QTP из Maven/Hudson?

Нам нужно интегрировать QTP с Hudson, чтобы автоматически вызывать наборы тестов для кода, развернутого в Hudson. Процесс сборки основан на Maven.

Есть ли какой-нибудь плагин или что-то для этого? Мы слышали о плагине Groovy для Hudson; Можем ли мы выполнить его с помощью скрипта Groovy?


person Community    schedule 22.07.2009    source источник


Ответы (5)


Hudson не запускает тесты, он берет результат и генерирует хороший отчет. Вы должны посмотреть, как заставить Maven запустить тесты, а затем заставить Hudson собрать вывод для создания отчета.

person Michael Donohue    schedule 22.07.2009
comment
Возможно, он задал первоначальный вопрос, слишком подчеркнув Хадсона, но это все же хороший вопрос, который заслуживает ответа. - person Jared; 22.08.2011

Как говорит Майкл, это проблема интеграции с Maven, а не с Hudson. Я не знаю плагина Maven для QTP, но вы можете использовать exec-maven- plugin для вызова произвольного исполняемого файла и предоставления аргументов этому исполняемому файлу. QTP предоставляет API «Автоматизации», который вы сможете довольно легко обернуть в сценарий. Это не будет гладкой интеграцией, но может послужить вашим целям.

Вот пример конфигурации, которую вы можете использовать:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.1.1</version>
  <executions>
    <execution>
      <goals>
        <goal>exec</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <executable>[qtp executable]</executable>
    <workingDirectory>/target</workingDirectory>            
    <arguments>
      <argument>[an argument to configure QTP]</argument>
      <argument>[another argument to configure QTP]</argument>
    </arguments>          
  </configuration>
</plugin>

ответ на предыдущий вопрос о вызове QTP из Ant: хорошая отправная точка для написания интеграции автоматизации.


Обновлять:

Вот подход, который может сработать для вас. Похоже, вы можете напрямую вызвать сервер QTP, передав имя теста, который хотите выполнить. Таким образом, вы можете использовать плагин antrun для вызова URL-адреса и направить вывод в целевой каталог. Измените URL-адрес и имя теста, чтобы они соответствовали вашей среде, и QTP должен быть вызван, а результаты помещены в target/qtp/results.html. Это предполагает, что у вас есть один тест, который вы можете вызвать, чтобы сделать все, что вам нужно в QTP.

<plugins>
  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.3</version>
    <executions>
      <execution>
        <phase>test</phase>
        <configuration>
          <tasks>
            <get verbose="true" src="http://[servername]/qtp/LaunchQTP.plx?testname=[test name]"
              dest="${project.build.directory}/qtp/results.html" />
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>
person Rich Seller    schedule 22.07.2009
comment
Не могли бы вы уточнить, что именно мне нужно делать с API автоматизации QTP, поскольку я новичок в QTP? Спасибо, Рамия. - person ; 23.07.2009
comment
Боюсь, у меня нет доступа или опыта работы с API. Проще всего было бы взять VB в указанном вопросе и вызвать его из плагина exec. - person Rich Seller; 23.07.2009
comment
Большое спасибо за ваш ответ. я попытался добавить этот плагин и часть тегов конфигурации в pom.xml, но до сих пор не получаю решения. не могли бы вы объяснить мне приведенную выше часть конфигурации на примере, например, какие точные параметры должны быть указаны для тегов в конфигурации? - person ; 23.07.2009
comment
Привет, не могли бы вы сказать мне, где я могу найти этот LaunchQTP.plx или мне нужно написать его? Во-вторых, у меня есть vbscript, чтобы открыть тесты QTP и Invoke в нем. У меня есть это в физическом местоположении. у нас нет порта или сервера с QTP. Нужно ли нам хранить этот vbscript в QualityCenter и вызывать его, используя имя сервера и порт QC? или его можно запустить без QC? Пожалуйста, проясните меня. Спасибо огромное. - person ; 24.07.2009

Мы реализовали эту интеграцию тремя способами, используя VBScript, JScript и утилиту RunTestSet. В POM нам нужно указать вот так.

  <build>
  <plugins>
  <plugin>    
    <artifactId>maven-antrun-plugin</artifactId>  
    <version>1.3</version>    
    <executions>      
      <execution>        
      <phase>test</phase>        
      <configuration>     
      <tasks>    
     <property name="vbs.script" value='qtp.vbs'/>
                <exec executable="WScript.exe" spawn="true" resolveExecutable="true">
        <arg line="${vbs.script}"/> 
    </exec>
                       </tasks>
     </configuration>       
     <goals>          
        <goal>run</goal>        
     </goals>     
   </execution>    
 </executions>  
 </plugin>
</plugins>
</build>

Используя RunTestSet,

<exec executable="location of RunTestSet.exe" output="outputFolder"> 
<arg line="/s:qc url"/>
<arg line="/n:Domain"/> 
<arg line="/d:Project"/> 
<arg line="/u:username"/> 
<arg line="/p:password"/>  
<arg line="/f:TestSetFolder"/> 
<arg line="/t:TestSet"/> 
<arg line="/l"/>  
</exec>

С уважением,
Рамья.

person Community    schedule 26.08.2009

Вы можете попробовать подключаемый модуль Quality Center для Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Quality+Center+Plugin

person fafanoulele    schedule 13.09.2011

Я использовал этот vbscript

Dim qtApp 'As QuickTest.Application ' Declare the Application object variable
Dim qtTest 'As QuickTest.Test ' Declare a Test object variable

Set qtApp = CreateObject("QuickTest.Application") ' Create the Application object
qtApp.Launch ' Start QuickTest
qtApp.Visible = True ' Make the QuickTest application visible

qtApp.Open "<fullpathto>\XlTest", True ' Open the test in read-only mode

' set run settings for the test
Set qtTest = qtApp.Test
qtTest.Run ' Run the test

qtTest.Close ' Close the test
qtApp.Close ' Close the app

Set qtTest = Nothing ' Release the Test object
Set qtApp = Nothing ' Release the Application object

который я называю напрямую

person Basim Baassiri    schedule 08.09.2010