zoukankan      html  css  js  c++  java
  • Jmeter接口測试



    一、创建project、引包
    1、创建JAVAproject
    2、引入Jmeter中libext基础包:ApacheJMeter_java.jar、ApacheJMeter_core.jar
    3、引入Jmeter日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar
    4、引入httpclient-4.3.4.jar(是基于httpcore的一套客户端)、httpcore-4.3.2.jar(是一套http协议实现包
    Jmeter用到的4个类:

    Arguments

    getDefaultParameters() 用于获取界面的參数

    SampleResult

    runTest(JavaSamplerContext context) 类似于LR的Action

    void

    setupTest(JavaSamplerContext context) 初始化方法,类似于LR的init和Junit中的setUp()

    void

    teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown()

    运行的先后顺序为:getDefaultParameters() --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)

    经常使用的方法:
    ①、addArgument("name", "value")    定义參数
    ②、sampleStart()    定义事务的開始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码
    ③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction
    ④、setSuccessful(true、false)    设置执行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中可以体现。

    二、用例
    1、TestApiGetSearchSuggestion.java,该代码实现对Api接口的请求,对返回的数据进行推断,并写文件。
    2、Jmeter_GetSearchSuggestion.java,为本节介绍的重点

    package com.test.jmeter; 
    
    import java.io.IOException; 
    
    import org.apache.http.client.ClientProtocolException; 
    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 Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient { 
    
    private static String label = "Jmeter_GetSearchSuggestion ";    //定义label名称,显示在jmeter的结果窗体
    private String url;
    private String data;
    
    public void setupTest(){
    //定义測试初始值,setupTest仅仅在測试開始前使用
    System.out.println("setupTest");
    }
    
    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
    
    url = arg0.getParameter("url");
    data = arg0.getParameter("data");
    SampleResult sr;
    sr = new SampleResult();
    sr.setSampleLabel(label);
    
    TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();
    sr.sampleStart();
    try {
    //调用被压測接口的方法
    t.PostJson(url, data);
    sr.setSuccessful(true);
    } catch (ClientProtocolException e) {
    sr.setSuccessful(false);
    e.printStackTrace();
    } catch (IOException e) {
    sr.setSuccessful(false);
    e.printStackTrace();
    }
    
    sr.sampleEnd();	// jmeter 结束统计响应时间标记
    return sr;
    }
    
    public void teardownTest(JavaSamplerContext arg0){
    super.teardownTest(arg0);
    }
    
    public Arguments getDefaultParameters(){
    //參数定义,显示在前台,也能够不定义
    Arguments params = new Arguments();
    params.addArgument("url", "http://gapp.test.com/merchandise/GetSearchSuggestion");
    params.addArgument("data", "data={"token": "aaaaaaaaaa","body": {"keywords": "蓝月亮"}}");
    return params;
    }
    
    }


    3、main函数測试成功后,打成jar包,放到%Jmeter_Home%libext文件夹中就可以


    三、执行用例
    1、执行%Jmeter_Home%injmeter.bat
    2、加入线程组,Java请求、查看结果树、聚合报告
    3、运行后的结果为

    Tips:
    快捷键
    Ctrl+R执行用例、Ctrl+E清除执行结果


    參考资料:


    
  • 相关阅读:
    java:编写jar包加密工具,防止反编译
    Linux:CentOS-7常用命令
    MyBatis:MyBatis-Plus条件构造器EntityWrapper
    SpringBoot:SpringBoot项目的配置文件放在Jar包外加载
    机械学习导
    如何選擇最佳的 Wi-Fi 無線網路頻道,獲得最佳的傳輸速度(转载)
    解决ubuntu下filezilla登录ftp看不到中文目录和文件的问题 (转载)
    输入前几个字母,用箭头就能找出开头字母相同的历史命史
    Linux系统下使用split命令分割大文件 (转载)
    删除文件时排除特定文件 (转载)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3847410.html
Copyright © 2011-2022 走看看