利用jmeter测试java请求

目录

一、前言

二、首先介绍如何用eclipse编写接口性能测试脚本。

三、其次讲一下如何在jmeter中执行接口性能测试。

四、测试结果的统计

五、利用jmeter进行分布式测试


一、前言

jmeter和loadrunner一样包含了测试脚本开发、测试执行、以及测试结果统计三个部分。只是jmeter没有脚本开发工具,因此测试java请求的脚本选择在eclipse中进行。

二、首先介绍如何用eclipse编写接口性能测试脚本。

针对"Java请求"类型的测试,需要基于JMeter测试框架编写用例。

1、新建一个普通的Java工程或者maven工程;

2、将 $JMeter安装目录/lib/ 目录引入工程;在java工程名上点鼠标右键选择build Path里面的Configure Build Path进入下面的jar包添加窗口。

点击Add External JARs..选择jmeter安装目录下的/lib/ext目录下的包加进来。

3、新建Java Class,如下的" testworkdayservicejmeter ",并继承"AbstractJavaSamplerClient";

package test.pssservice;



import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;



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 testworkdayservicejmeter  extends AbstractJavaSamplerClient{



   

    private static long start = 0;

    private static long end = 0;

    public testpssWorkDayService pssAPItest;

       //设置可用参数及的默认值;

    public Arguments getDefaultParameters() {

     Arguments params = new Arguments();

     params.addArgument("workday", "");

    

     return params;

    }



    public void setupTest(JavaSamplerContext arg0) {

    try{

       pssAPItest=new testpssWorkDayService();

        }catch (Exception e1) {

           e1.printStackTrace();

        }

       }

   

       public SampleResult runTest(JavaSamplerContext arg0) {

           SampleResult sr = new SampleResult();

           try

           {

          

           sr.sampleStart();// jmeter 开始统计响应时间标记

           String tmpde=arg0.getParameter("workday");

           DateFormat dft=new SimpleDateFormat("yyyy-MM-dd");

           Date tmpdate=dft.parse(tmpde); 

           boolean tmpresult=pssAPItest.isworkday(tmpdate);//调用接口方法

          

          

           if (tmpresult){

             sr.setSuccessful(true);

           }

           else{

              sr.setSuccessful(false);

           }

          

           sr.sampleEnd();

          

           }catch (Exception e1) {

              e1.printStackTrace();

              sr.setSuccessful(false);

              sr.sampleEnd();

           }

          

       return sr;

       }

       public void teardownTest(JavaSamplerContext arg0) {

           pssAPItest=null;

       }





}

4、导出成Jar并置于 $JMeter安装目录/lib/ext/ 下,若有依赖Jar也置于 $JMeter安装目录/lib/ 下;

5、启动或重启JMeter。

三、其次讲一下如何在jmeter中执行接口性能测试。

将上一步导出的jar包放在$JMeter安装目录/lib/ext/ 下,然后把需要的参数化文件也拷贝到压力机上的磁盘目录上面(参数化文件可以与jar目录相同也可以不同)。

1.运行jmeter.bat打开jmeter主界面;

2.在测试计划里面将包加进来;

在测试计划下添加线程组元件,然后在线程组下面添加java请求元件、CSV Data Set Config元件和聚合报告元件。如果不需要参数化的话,CSV Data Set Config元件可以不需要。

聚合报告元件用于显示测试的结果。

3.在java请求中的测试类选出来

此处测试的类是test.pssservice.testworkdayservicejmeter。

4.设置参数化文件信息

filename处填写参数化文件的绝对路径和参数文件名称;

File encoding是参数化文件的编码,一般为utf-8;

Variable Names参数文件中对应的参数名称,如果有多个用“,”隔开;

Delimiter表示同一个参数文件中有多个参数的,此处列出他们的分隔符;

5.测试结果通过聚合报告列出来

如果有多个接口的话,需要添加多个线程组,每个线程组一个java请求,然后将聚合报告添加到测试计划下。

四、测试结果的统计

聚合报告中的throughput相当于loadrunner当中的tps,average相当于loadrunner中的平均响应时间,samples相当于总的通过事务数。error表示失败率。

五、利用jmeter进行分布式测试

在进行性能测试时,需要模拟多用户并发访问,但是由于单台负载机模拟用户数量有限,我们期望使用多台负载机进行负载模拟,利用JMeter进行性能测试时,可以在多台负载机上部署JMeter,如我们有23台性能测试机,其中一台为主控机(192.168.6.117),另外一台为负载机192.168.6.235),具体配置方法如下:

1、 在主控台(192.168.6.117)的JMeter机器上,打开JMeter目录bin文件夹下的jmeter.properties文件,修改remote_hosts=192.168.6.117:1099,192.168.6.235:1099保存后,重启192.168.6.117。

2、 分别运行负载机192.168.6.117,192.168.6.235上的jmeter-server.bat

3、 运行主控台192.168.6.117 JMeter的jmeter.bat,打开GUI界面,打开“运行”菜单下的“远程控制”,可以看到新添加的负载机192.168.6.117,192.168.6.235,如下图所示:

4、 下面就可以开始利用远程负载机进行性能测试了。

要使用 JMeter 进行远程负载机的性能测试,你需要设置一个主 JMeter 服务器和多个远程负载机。以下是一般的步骤:

  1. 在远程负载机上安装 JMeter

    • 在每台远程负载机上,按照之前提到的步骤安装和配置 JMeter。
  2. 配置远程负载机

    • 在每台远程负载机上,编辑 JMeter 的 "jmeter.properties" 文件,设置 "server.rmi.localport" 和 "server_port",确保它们在每台机器上唯一。
  3. 启动 JMeter Server

    • 在每台远程负载机上,通过命令行启动 JMeter 服务器,命令类似于:jmeter-server -Djava.rmi.server.hostname=<remote_host_ip>
  4. 配置主 JMeter 主控制器

    • 在主 JMeter 控制器中,打开 JMeter 并配置 "Remote Start"。
    • 在 "Remote Start" 中添加远程负载机的 IP 地址和端口号。
  5. 编写测试计划

    • 在主 JMeter 控制器中,创建你的测试计划,包括线程组、各种请求、断言等。
  6. 分发测试计划

    • 将测试计划保存并在主 JMeter 控制器中启动测试。
  7. 监控测试执行

    • 在主 JMeter 控制器中,你可以监控所有远程负载机的测试执行情况,包括吞吐量、响应时间等。

通过以上步骤,你可以利用远程负载机进行性能测试,并且在主 JMeter 控制器上集中管理和监控所有远程负载机的测试执行情况。这样可以更好地模拟真实负载情况,进行大规模并发用户的压力测试。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的雷神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值