3

我们需要将 QTP 与 Hudson 集成,以针对部署在 Hudson 中的代码自动调用测试套件。构建过程基于 Maven。

是否有任何插件或其他东西可以实现这一目标?我们听说过 Hudson 的 Groovy 插件;我们可以用 Groovy 脚本执行它吗?

4

5 回答 5

2

Hudson 不运行测试,它获取输出并生成一个不错的报告。您应该了解如何让 Maven 运行测试,然后让 Hudson 获取输出以生成报告。

于 2009-07-22T13:35:30.160 回答
2

正如 Michael 所说,这是一个 Maven 集成问题,而不是 Hudson 问题。我不知道 QTP 的 Maven 插件,但您可以使用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>

对前面关于从 Ant 调用 QTP 的问题的回答是编写自动化集成的一个很好的起点。


更新:

这是一种可能对您有用的方法。看来您可以直接调用 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>
于 2009-07-22T21:08:19.710 回答
2

我们使用 VBScript、JScript 和 RunTestSet 实用程序以 3 种方式实现了这种集成。在 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>

问候,
拉米亚。

于 2009-08-26T05:19:24.690 回答
1

您可以尝试 Jenkins 的质量中心插件:https ://wiki.jenkins-ci.org/display/JENKINS/Quality+Center+Plugin

于 2011-09-13T12:37:51.107 回答
0

我一直在使用这个 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

我直接调用

于 2010-09-08T19:42:11.263 回答