2011-03-09 45 views
0

最近我正在使用測試自動化。目標是獲得更快的反饋,所以我們決定使用maven-jmeter-plugin,jmeter腳本和Hudson。無法使用HTTP Cookie管理器運行jmeter腳本

我寫了一些例子Jmeter腳本模板,他們工作正常(只是一個快速的煙霧測試訪問頁面)。

問題是我必須完成的腳本需要'HTTP Cookie Menager'才能正常運行。

這裏是我正在使用的虛擬腳本嘗試識別什麼是錯的。

Test Plan 
|-> Thread Group 
     |-> HTTP Cookie Menager 
     |-> Loop Controler 
      |-> HTTP request 

我用的是相同的結構,我準備等工作示例(jmeter.properties,update.properties,system.properties - 在最後一個文件我一直使用的腳本用戶等數值,循環計數,主持人等)。

當我和MVN運行乾淨驗證它返回下面的輸出:

mvn -e clean verify 
+ Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[WARNING] 
     Profile with id: 'development,hudson' has not been activated. 

[INFO] ------------------------------------------------------------------------ 
[INFO] Building com.cybercom.test::peformance-test-mvn 
[INFO] task-segment: [clean, verify] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [clean:clean {execution: default-clean}] 
[INFO] Deleting directory C:\Hudson\data\jobs\peformance-test-mvn\workspace\trunk\target 
[INFO] [site:attach-descriptor {execution: default-attach-descriptor}] 
[INFO] [jmeter:jmeter {execution: jmeter-tests}] 
[INFO] Executing test: C:\Hudson\data\jobs\peformance-test-mvn\workspace\trunk\src\test\jmeter\temp.jmx 
Error in NonGUIDriver java.lang.NullPointerException 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] There were test errors 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.BuildFailureException: There were test errors 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:55 
6) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.jav 
a:387) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
     at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
     at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
Caused by: org.apache.maven.plugin.MojoFailureException: There were test errors 
     at org.apache.jmeter.JMeterMojo.checkForErrors(JMeterMojo.java:115) 
     at org.apache.jmeter.JMeterMojo.execute(JMeterMojo.java:102) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
     ... 17 more 

沒有HTTP Cookie的MENAGER相同的腳本可以工作得很好,但正如我所說,這只是虛擬腳本來調查什麼是錯的。

我認爲POM文件可能是有用的,以及在這裏它是:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>test</groupId> 
    <artifactId>peformance-test-mvn</artifactId> 
    <name>${groupId}::${artifactId}</name> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.jmeter</groupId> 
       <artifactId>maven-jmeter-plugin</artifactId> 
       <version>1.0</version> 
       <executions> 
        <execution> 
         <phase>verify</phase> 
         <id>jmeter-tests</id> 
         <goals> 
          <goal>jmeter</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <reportDir>target/jmeter-reports</reportDir> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <pluginRepositories> 
     <pluginRepository> 
      <releases> 
       <enabled>true</enabled> 
       <updatePolicy>always</updatePolicy> 
       <checksumPolicy>fail</checksumPolicy> 
      </releases> 
      <snapshots> 
       <enabled>false</enabled> 
       <updatePolicy>never</updatePolicy> 
       <checksumPolicy>warn</checksumPolicy> 
      </snapshots> 
      <id>nexus</id> 
      <url>XXXX</url> 
      <name>YYYY</name> 
      <layout>default</layout> 
     </pluginRepository> 
    </pluginRepositories> 
</project> 

我在想什麼?

在此先感謝 帕維爾

回答

1

問題解決了。

共享記錄依賴於Maven的JMeter的-插件,1.0.pom

添加以下行

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.1.1</version> 
</dependency> 

解決問題丟失。

+0

這是固定在最新版本,請參閱http://jmeter.lazerycode.com – Ardesco 2012-02-09 14:26:35

+0

這已修復在最新版本(1.4.1時發佈)。該插件也不在mvn中央倉庫中,儘管組ID和工件ID必須改變以使其能夠被添加到中央倉庫。更多信息請訪問http://jmeter.lazerycode.com – Ardesco 2012-03-12 15:32:49