一:背景
利用jmeter进行压测,对于一些sdk的压测,对于jmeter是无法支持,需要用户利用java请求来达到需求目的。
二:方法
1.对于用户实现的java请求,必须要继承AbstractJavaSamplerClient
2.关于继续AbstractJavaSamplerClient类中方法讲解
2.1 public Arguments getDefaultParameters()此方法的目的是从jmeter的操作界面上设置用户的参数,在jmeter上对应的位置为:
其中方法中首先建立Arguments params=new Arguments();一个对象,然后用params.addArgument(对应jmeter界面上显示的名称一列,对应 jmeter界面上显示的值一列)。其中对应jmeter界面上显示的值这列的value是可以为空,这列代表对应name的默认值。代码如下
2.2 public void setupTest(JavaSamplerContext context)方法主要是做执行前的初始化动作,每个线程测试前进行启动一次,例如获取界面的参数和一些初始化的动作。如下面代码中的参数获取和样例结果对象的初始化。
2.3 public SampleResult runTest(JavaSamplerContext arg0)方法是处理业务的核心代码。对于业务的处理都是在该方法中进行。其中计算一个请求的时间段,通过sampleResult中的sampleStart到sampleEnd作为计算响应时间。其中对于如果想jmeter存在响应结果,则需要调用sampleResult.setResponseCode()方法输出结果。对于最终的线程结果是否正确通过SampleResult的setSuccessful(Boolean flag)来决定
2.4 public void teardownTest (JavaSamplerContext context)方法是测试结束时调用,只执行一次。
备注:以上四个方法的顺序为:getDefaultParameters()、setupTest(JavaSamplerContext context)、runTest(JavaSamplerContext arg0)、teardownTest(JavaSamplerContext arg0)。其中runTest是必实现的。setupTest和tearDownTest都是一个线程执行一次 ,对于有参数化的变量请勿在setUpTest中实现。
3.代码完成后,以jar包导入到jmeter安装包的lib\ext目录下。
4.打开jmeter,选择java请求,选择对应的类,进行参数化。具体如下