Jmeter发送Java请求

闲聊 闲聊 1506 人阅读 | 0 人回复

<
        第一次碰到了需求用Jmeter收收Java恳求的状况,也是网上查过很多材料才胜利。做一个记载,做一个分享。
        Jmeter来收收Java恳求,便是需求您有测试类的jar包放到Jmeter的lib/ext目次下,新建Java恳求才能够。那个我们用到的测试类,开辟给到当前我们需求本人来做一下调解,利用Eclipse东西去写。
        1.首先创立好工程,用到两个Jmeter包-ApacheJMeter_java.jar、ApacheJMeter_core.jar,间接从Jmeter复造项目里,而且左键Buid Path就能够了。
150229ln88d9mep8945k4c.jpg

        2.测试类需求担当AbstractJavaSamplerClient,面击报错举办导包战增加完成办法。runTest办法便是中心办法,所完成的代码逻辑正在那里。
150230qy87777882e98778.jpg

         3.写一个简朴的demo,两个数相减为sum结果。初初化一个SampleResult,然后sr.sampleStart()做为Jmeter开端统计呼应工夫标识,相减历程为正式的逻辑代码,把返回结果放进sr并设置字符散,sr.setSuccessful()设置胜利取可,最初减上sr.sampleEnd()结束统计呼应的标识,返回sr便可。
150230czgbgwjo2obkugj2.jpg

         4.导出jar包,放到Jmeter-lib/ext目次,增加一个Java恳求,挑选我们test下的TestSum就能够了,测试结果以下:
150231rpqjm52707psk56v.jpg

150231az33q2cfaqf3at3n.jpg

150231lf4x41q5c4ccfbfe.jpg
         5.简朴的测试写完以后,我们再举办革新代码,传进的int参数不克不及是牢固的,需求我们正在Jmeter中传进不同的参数举办测试,首先把方才界说好的参数(8战6)来失落,正在getDefaultParameters办法中来初初化一个参数散,把进参放进params;setupTest办法做一些Jmeter测试前的初初化事情,能够正在那里获得我们输进的参数。从头挨包测试,我们就能够自界说两个进参的值了。
150231mkzff20ufefmqbud.jpg

150232ia1crdu1iv1r9qk1.jpg

150232lr63p6ne6rmk353q.jpg

150232sssxmm3p4jym1wsz.jpg

         6.到那里该当皆大要明白怎样做了,附上本次代码,能够做为一个模板,间接正在上边举办修正便可。
  1. import org.apache.jmeter.config.Arguments;
  2. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
  3. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
  4. import org.apache.jmeter.samplers.SampleResult;
  5. public class TestSum extends AbstractJavaSamplerClient {
  6.         private String number1;
  7.         private String number2;
  8.         @Override
  9.         public Arguments getDefaultParameters() {
  10.                 Arguments params = new Arguments();//初初化一个参数散
  11.                 params.addArgument("num1", "");//把进参放进params
  12.                 params.addArgument("num2", "");
  13.                 return params;
  14.         }
  15.         @Override
  16.         public void setupTest(JavaSamplerContext arg0) {
  17.                 number1 = arg0.getParameter("num1");//获得进参,赋值给变量
  18.                 number2 = arg0.getParameter("num2");
  19.         }
  20.         @Override
  21.         public SampleResult runTest(JavaSamplerContext arg0) {
  22.                 //int number1 = 8;// 界说一个int参数8
  23.                 //int number2 = 6;// 界说一个int参数6
  24.                 SampleResult sr = new SampleResult();// 初初化一个SampleResult
  25.                 sr.setSamplerData("恳求参数num1:" + number1 + "\n恳求参数num2:" + number2);// 参数放进sr
  26.                 try {
  27.                         sr.sampleStart(); // jmeter 开端统计呼应工夫标识
  28.                         int sum = Integer.parseInt(number1)+Integer.parseInt(number2);// 界说sum即是两个参数相减,正式的逻辑代码
  29.                         sr.setResponseData("两个数相减的成果是:" + sum, "utf-8");// 成果放进sr,并设置字符散
  30.                         sr.setDataType(SampleResult.TEXT);
  31.                         sr.setSuccessful(true); // 设置呼应施行胜利
  32.                 } catch (Throwable e) {
  33.                         sr.setSuccessful(false);// 有非常,施行失利
  34.                         e.printStackTrace();
  35.                 } finally {
  36.                         sr.sampleEnd(); // jmeter 完毕统计呼应工夫标识
  37.                 }
  38.                 return sr;
  39.         }
  40. }
复造代码
         实在的项目常常是庞大的,检察结果树自界说返回甚么内乱容,若有界说好的返回结果resultData,sr.setResponseData(resultData, "字符散")便可。
        互相进修,配合前进!

免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则