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

    一、创建工程、引包
    1、创建JAVA工程
    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,为本节介绍的重点
     1 package com.test.jmeter; 
     2 
     3 import java.io.IOException; 
     4 
     5 import org.apache.http.client.ClientProtocolException; 
     6 import org.apache.jmeter.config.Arguments; 
     7 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; 
     8 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 
     9 import org.apache.jmeter.samplers.SampleResult; 
    10 
    11 public class Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient { 
    12 
    13 private static String label = "Jmeter_GetSearchSuggestion ";    //定义label名称,显示在jmeter的结果窗口
    14 private String url;
    15 private String data;
    16 
    17 public void setupTest(){
    18 //定义测试初始值,setupTest只在测试开始前使用
    19 System.out.println("setupTest");
    20 }
    21 
    22 @Override
    23 public SampleResult runTest(JavaSamplerContext arg0) {
    24 
    25 url = arg0.getParameter("url");
    26 data = arg0.getParameter("data");
    27 SampleResult sr;
    28 sr = new SampleResult();
    29 sr.setSampleLabel(label);
    30 
    31 TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();
    32 sr.sampleStart();
    33 try {
    34 //调用被压测接口的方法
    35 t.PostJson(url, data);
    36 sr.setSuccessful(true);
    37 } catch (ClientProtocolException e) {
    38 sr.setSuccessful(false);
    39 e.printStackTrace();
    40 } catch (IOException e) {
    41 sr.setSuccessful(false);
    42 e.printStackTrace();
    43 }
    44 
    45 sr.sampleEnd();    // jmeter 结束统计响应时间标记
    46 return sr;
    47 }
    48 
    49 public void teardownTest(JavaSamplerContext arg0){
    50 super.teardownTest(arg0);
    51 }
    52 
    53 public Arguments getDefaultParameters(){
    54 //参数定义,显示在前台,也可以不定义
    55 Arguments params = new Arguments();
    56 params.addArgument("url", "http://gapp.test.com/merchandise/GetSearchSuggestion");
    57 params.addArgument("data", "data={"token": "aaaaaaaaaa","body": {"keywords": "蓝月亮"}}");
    58 return params;
    59 }
    60 
    61 }
    3、main函数测试成功后,打成jar包,放到%Jmeter_Home%libext目录中即可
     
     
    三、运行用例
    1、运行%Jmeter_Home%injmeter.bat
    2、添加线程组,Java请求、查看结果树、聚合报告
    3、执行后的结果为
     
    Tips:
    快捷键
    Ctrl+R运行用例、Ctrl+E清除运行结果
  • 相关阅读:
    nginx系列之七:限流配置
    nginx系列之六:cache服务
    nginx系列之五: 负载均衡
    nginx系列之四:web服务器
    nginx系列之三:日志配置
    nginx系列之二:配置文件解读
    nginx系列之一:nginx入门
    [面试题]25个MySQL经典面试题
    常用的 Linux iptables 规则
    java new一个对象的过程中发生了什么
  • 原文地址:https://www.cnblogs.com/liu-ke/p/4325607.html
Copyright © 2011-2022 走看看