IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> jmeter 5.4.1自定义接口性能测试步骤 -> 正文阅读

[Java知识库]jmeter 5.4.1自定义接口性能测试步骤

1. 编写自定义接口测试jar包

采用maven项目进行自定义接口测试的jar包开发,开发工具使用idea。

1.1 创建maven工程

在maven工程中,pom.xml添加相关依赖。

<dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>5.0</version>
        </dependency>

添加jar包输出插件

<build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.8.0</version>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

1.2 编写测试方法

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 JMeterTestDemo extends AbstractJavaSamplerClient {
	
	private SampleResult results;
    private String testStr;
    
    // 准备测试
    public void setupTest(JavaSamplerContext arg0) {
        results = new SampleResult();
        
        // 获取参数值
        testStr = arg0.getParameter("Parameter1");
        
        if(testStr!=null&&testStr.length()>0){
            results.setSamplerData(testStr);
        }
    }
    
    // 设置默认参数
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("Parameter1", "aaa");
        return params;
    }
    
    
    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
        // TODO Auto-generated method stub
        int len = 0;
        // 设置开始时间
        results.sampleStart();
        
        len = testStr.length();
        
        // 设置结束时间
        results.sampleEnd();
        
        // 根据测试结果,设置测试结果信息
        if(len<5){
            System.out.println("String is  "+testStr);
            results.setSuccessful(false);
        }else{
            System.out.println("String is  "+testStr);
            results.setSuccessful(true);
        }
        
        // 返回结果信息
        return results;
    }
    
    public void teardownTest(JavaSamplerContext arg0) {
    	
    }
}

其中setupTest方法,可以进行测试的准备,比如进行相关的初始化;

runTest方法用于执行实际的测试任务;

teardownTest方法用于测试结束时的处理;

?将测试项目打包成jar包。

2. 将jar添加到jmeter的lib/ext目录下

将前一步生成的jar包放到jmeter的lib/ext目录下,这样测试计划执行的时候,jmeter会自动加载lib/ext目录下的jar包,这样就可以调用自定义的接口了。

3. 编写测试计划

编写测试计划一般通过jmeter提供的图形用户界面进行编写。

3.1 编写测试计划

测试计划一般包括线程组和需要测试的接口对应的采样器(sampler -> http request)。

首先是添加线程组。

在线程组下面,添加采样器(Sampler),如果是测试http接口,可以选择http request.

如果需要获取接口返回的参数,可以添加提取器,如果返回数据格式为json,则可以选择json extractor。

查看结果树(View Result Tree)组件用于查看接口发送和返回信息;

聚合报告和汇总报告,用户生成测试数据;

调试采样器(Debug Sampler)用于显示调试输出;

采样器(Sampler)参考配置。

?3.2 调试测试计划

通过选择接口,点击执行按钮,进行单个接口的测试。通过查询结果树以及调试采样器,查看执行结果是否和预期一致。

程序中通过控制台打印输出的调试信息,可以通过黑窗口控制台进行查看。

?如果性能要求不高,可以采用图形界面进行性能测试,设置好线程组的测试参数:

?执行完成后,可以通过测试包括查看测试结果。

4. 执行测试计划

对于并发性能要求高的场景,根据官方的建议,尽量使用命令行方式启动测试计划,这样可以提高执行效率。

如果程序中有调试输出,建议关闭调试输出。

jmeter -n -t TestPlan-v2-presstest.jmx -l test.jtl -e -o result

-n 表示不使用图形界面;

-t 指定测试脚本;

-l 指定测试输出文件;

-e -o 表示测试报告输出以及具体的目录位置。

测试完成后,在result目录中去查看测试结果。

5. 获取测试结果

测试结果在输出目录下。

?通过index.html文件可以查看测试结果。

?通过链接查看各种具体的性能数据报表。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:02:36  更:2022-05-07 11:05:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:21:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码