• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Ant+JMeter進行Web應用的穩定性測試

    發布: 2007-6-22 07:38 | 作者:   | 來源:   | 查看: 102次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      Ant是一個快速開發的工具,類似Unix下的make,很方便的組織項目,編譯,打包,布署等。對于Ant的使用這里就不介紹了,若未使用過,可以在網上找到很多文章和例子。也可聯系我kui.yao@163.com。
      

      JMeter也是Apache的一個開源工具,是一個比較流行的WEB應用測試工具,當然作為測試工具,也可以進行其它測試,比如數據庫,JDBC等。其本身的使用,比如如何創建一個測試計劃,建立監聽器,比如使用表格進行結果查看,將測試結果記錄到文件中等,也不在這里介紹,如果不清楚,也可以聯系我kui.yao@163.com。
      
      由于JMeter本身主要用于性能測試,也即是峰值測試,同時在線的人數和系統壓力等。而在實際系統中還需要對“穩定性”測試。比如根據一天的總量(如60000警情),平均間隔多久就會有一個 新警情發生,要求服務器連續工作24或7*24小時的情況進行測試。這樣思想就是根據估計,間隔一定時間重復運行一個“測試計劃”達到此要求。
      
      1,使用ant進行jmeter測試,同時利用xsl樣式查看結果。詳細可以參考文章。
      
      2,這里進入本主題,利用ant進行穩定測試。
      
      a,這里我有一個http的測試web1.jmx,測試結果記錄到web1.jtl中。利用ant的build.xml文件可以是這樣的。
      
      <project name="antjmeter" default="run" basedir=".">
      <property name="out" value="."/>
      <target name="test">
      <taskdef
      name="jmeter"
      classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
      
      <jmeter
      jmeterhome="D:\ProgramFiles\jakarta-jmeter-2.1.1"
      testplan="${basedir}/web1.jmx"
      resultlog="${out}/web1.jtl">
      <jvmarg value="-Dgroup1.threads=10"/>
      </jmeter>
      <echo message="jmeter web1.jmx finished"/>
      </target>
      <target name="interval">
      <echo message="sleep 5 seconds"/>
      <sleep seconds="5"/>
      <echo message="continue"/>
      </target>
      <target name="tfile">
      <xslt
      in="${basedir}/web1.jtl"
      out="${basedir}/web1.html"
      style="${basedir}/jmeter-results-report.xsl"/>
      </target>
      <target name="run" depends="test,interval,tfile"/>
      </project>
      
      運行結果查看。
      
      b,從上面可以運行一次“測試計劃”,如果要連續運行24小時呢?其中加了一個sleep目的就是想在每次運行完后暫停一下。這個根據你的系統要求估算。
      
      c,從基本思想上大家可以想象,如果ant有loop或for的話,也可設定運行次數來達到這個目的。但是目前Ant沒有此功能。所以達不到。通過我查看文檔,其中有ant和antcall的task,是不是可以利用這個來達到目的呢?
      
      即build.xml中寫為
      
      <target name="test">
      <taskdef
      name="jmeter"
      classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
      
      <jmeter
      jmeterhome="D:\ProgramFiles\jakarta-jmeter-2.1.1"
      testplan="${basedir}/web1.jmx"
      resultlog="${out}/web1.jtl">
      <jvmarg value="-Dgroup1.threads=10"/>
      </jmeter>
      <echo message="jmeter web1.jmx finished"/>
      
      <antcall target="interval"/>
      
      <antcall target="test"/> <!--循環調用自已來達到持續運行的目的。-->
      <!--ant antfile="build.xml"/-->
      </target>
      
      結果是使用ant或是antCall都不行。錯誤如下:
      
      antcall運行報錯
      BUILD FAILED
      D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web3\build.xml:18: antcall task call
      ing its own parent target.
      ant 運行報錯
      BUILD FAILED
      D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web3\build.xml:19: ant task calling
      a target that depends on its parent target 'test'.
      
      d,不過從前者的結果看,是不能call its own。因此我將原target test一樣考貝一份取名test2。
      
      則在test中<antcall target="test2"/>,在test2中<antcall target="test"/>,這樣運行就可以達到
      
      我想要的連續測試的要求。
      
      3,只是這樣也有缺陷,因為這沒有編程功能,不能在之中加入比如測500次或測24小時后就不再antcall
      
      而結束的功能。所以要在你想停止的時候手動停止了。
      
      4,這樣xslt轉換就不能寫在這個功能中了,最后手動停止后再做xslt轉換或直接在xml中加入xsl顯示即可。
      
      D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web3>ant
      Buildfile: build.xml
      
      test:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test2:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test2:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test2:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test2:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test2:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      [echo] continue
      
      test:
      [jmeter] Executing test plan: D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web
      3\web1.jmx
      [jmeter] Created the tree successfully
      [jmeter] Starting the test
      [jmeter] Tidying up ...
      [jmeter] ... end of run
      [echo] jmeter web1.jmx finished
      
      interval:
      [echo] sleep 5 seconds
      終止批處理操作嗎(Y/N)? y
      
      D:\ProgramFiles\jakarta-jmeter-2.1.1\mytest\web3>
      
      e,綜合,可以使用此方法來達要求。當你想停止測試時,則手動停止即可。查看上面的這個build
      <!-- Simple Ant Jmeter test-->
      <project name="antjmeter" default="run" basedir=".">
      <property name="out" value="."/>
      <target name="test">
      <taskdef
      name="jmeter"
      classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
      
      <jmeter
      jmeterhome="D:\ProgramFiles\jakarta-jmeter-2.1.1"
      testplan="${basedir}/web1.jmx"
      resultlog="${out}/web1.jtl">
      <jvmarg value="-Dgroup1.threads=10"/>
      </jmeter>
      <echo message="jmeter web1.jmx finished"/>
      
      <antcall target="interval"/>
      
      <antcall target="test2"/>
      <!--ant antfile="build.xml"/-->
      </target>
      <!--for execute target test many times,copy the target test
      to target test2-->
      <target name="test2">
      <taskdef
      name="jmeter"
      classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
      
      <jmeter
      jmeterhome="D:\ProgramFiles\jakarta-jmeter-2.1.1"
      testplan="${basedir}/web1.jmx"
      resultlog="${out}/web1.jtl">
      <jvmarg value="-Dgroup1.threads=10"/>
      </jmeter>
      <echo message="jmeter web1.jmx finished"/>
      
      <antcall target="interval"/>
      
      <antcall target="test"/>
      <!--ant antfile="build.xml"/-->
      
      </target>
      
      <target name="interval">
      <echo message="sleep 5 seconds"/>
      <sleep seconds="5"/>
      <echo message="continue"/>
      </target>
      <target name="tfile">
      <xslt
      in="${basedir}/web1.jtl"
      out="${basedir}/web1.html"
      style="${basedir}/jmeter-results-detail-report.xsl"/>
      </target>
      <target name="run" depends="test"/>
      </project>

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>