您好,登錄后才能下訂單哦!
這篇文章主要介紹“JMeter如何開發一個自定義Sample”,在日常操作中,相信很多人在JMeter如何開發一個自定義Sample問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JMeter如何開發一個自定義Sample”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
[java] view plaincopy package com.alibaba.stress.load; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; public class LifecycleJMeterSampleextends AbstractJavaSamplerClient { @Override public Arguments getDefaultParameters() { System.out.println("Get Parameter name! [getDefaultParameters]"); return super.getDefaultParameters(); } @Override public void setupTest(JavaSamplerContext context) { System.out.println("[setupTest]"); super.setupTest(context); } @Override public void teardownTest(JavaSamplerContext context) { System.out.println("[teardownTest]"); super.teardownTest(context); } @Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.sampleStart(); System.out.println("[runTest]"); result.setSuccessful(true); result.sampleEnd(); return result; } } [java] view plaincopy package com.alibaba.stress.load; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; public class LifecycleJMeterSample extends AbstractJavaSamplerClient { @Override public Arguments getDefaultParameters() { System.out.println("Get Parameter name! [getDefaultParameters]"); return super.getDefaultParameters(); } @Override public void setupTest(JavaSamplerContext context) { System.out.println("[setupTest]"); super.setupTest(context); } @Override public void teardownTest(JavaSamplerContext context) { System.out.println("[teardownTest]"); super.teardownTest(context); } @Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.sampleStart(); System.out.println("[runTest]"); result.setSuccessful(true); result.sampleEnd(); return result; } } [java] view plain copy package com.alibaba.stress.load; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; public class LifecycleJMeterSample extends AbstractJavaSamplerClient { @Override public Arguments getDefaultParameters() { System.out.println("Get Parameter name! [getDefaultParameters]"); return super.getDefaultParameters(); } @Override public void setupTest(JavaSamplerContext context) { System.out.println("[setupTest]"); super.setupTest(context); } @Override public void teardownTest(JavaSamplerContext context) { System.out.println("[teardownTest]"); super.teardownTest(context); } @Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.sampleStart(); System.out.println("[runTest]"); result.setSuccessful(true); result.sampleEnd(); return result; } }
其中AbstractJavaSamplerClient是從ApacheJmeter_Java.jar 中獲得。編寫的類文件打包xxx.jar, 把這個Jar放到Jmeter的解壓目錄下的lib/ext下。重新啟動jmeter. 一次先加入線程組,和聚合報告兩個組件,在聚合報告組件之前加入一個新的Sample(Java Sample )
運行測試。可以看到控制臺的輸出。調整幾次線程組的線程數目的控制,我們會發現我們的這個自定義類中的teardowntest 和 setupuptest方法都是正對線程組中的某一個線程來執行的,線程組中線程的調用數目其實就是指runtest方法的運行次數。 5.Jmeter的分布式測試(優缺點) 下面是分布式測試的使用方法,即使用一臺機器控制多臺機器給目標機器產生壓力。由于Linux和Windows上的方法有些不一樣,這里說下Linux下是怎么來配置的。
首先總控的機器我們叫master,產生壓力的肉雞我們叫JmeterServer,待我們測試的系統我們叫Target.
第一步:啟動JmeterServer。我們可以找到Jmeter/bin 目錄下的jmeter-server這個腳本,運行即可,當然如果你需要調整這個測試負載產生服務器的內存等性能參數的話,我們修改這個腳本jmeter中的內存參數。
第二步 : 修改Master機器上jmeter/bin目錄下的jmeter.properties文件,修改remote_hosts=localhost:1099,localhost:2010這個為你自己的JmeterServer的實際IP,如果有多臺可以用逗號分開。
第三步 : 啟動master jmeter,運行測試腳本的時候選:運行 --> 遠程運行 --> 選擇IP 或者 運行所有遠程。JmeterServer就會運行Master機器上設定的運行腳本了。
到此,關于“JMeter如何開發一個自定義Sample”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。