国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 12:53:54
字體:
來源:轉載
供稿:網友

  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:/  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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连江县| 宁陵县| 溧水县| 松溪县| 南投市| 崇阳县| 隆德县| 克山县| 乃东县| 兴山县| 灯塔市| 莎车县| 内黄县| 宜兴市| 嘉峪关市| 城市| 巩义市| 潢川县| 梨树县| 时尚| 平安县| 明光市| 莎车县| 宝坻区| 罗山县| 会同县| 鄯善县| 桐梓县| 姚安县| 刚察县| 平乐县| 孝感市| 宁化县| 报价| 富宁县| 临沂市| 汉阴县| 进贤县| 巧家县| 高台县| 双城市|