zoukankan      html  css  js  c++  java
  • 使用JMeter测试HTTP接口的方法

      JMeter是Apache出的一款用JAVA开发的性能测试工具,可以方便的对各种接口进行测试。下面就来看一下,使用JMeter对HTTP接口进行测试的方法。

    1、添加线程组,用来控制执行过程。右键“测试计划”→“添加”→“Threads(Users)”→“线程组”。


    线程组有三个属性:

    线程数:启动的线程数量。

    Ramp-Up Period:指定时间启动所有线程。会用相等间隔启动所有线程。

    循环次数:线程循环执行的次数。

    举个栗子:设置线程数=2、Ramp-Up Reriod=10、循环次数=3,那么流程就是,启动1个线程,隔5秒再启动第2个线程,每个线程启动后执行3次。

    2、添加HTTP请求,用来设置具体HTTP请求的内容。右键“线程组”→“添加”→“Sampler”→“HTTP请求”。

    以这个请求地址为例:http://127.0.0.1:18080/getUserInfo

    最简单的参数设置方法,是直接将请求地址填在路径里,如下:

    也可以将参数分开填写到对应位置(分开填写的好处是后期可以动态配置),如下:


    3、添加查看结果页面,用来查看HTTP请求的结果。右键“线程组”→“添加”→“监听器”→“察看结果树”。

    请求过后,可以在取样器结果、请求、响应数据三个页面中看到请求的所有信息,包括请求地址、参数、返回值、耗时等等。如下:

    4、请求参数的设置。

    刚的HTTP请求,并没有传参,但通常的接口请求都会带有参数,那么在哪里添加呢?就是在第2步的HTTP请求页面中的Parameters、BodyData。

    接口参数接收方式通常有2种,对应传参方式如下:

    (1)键值对的方式。

    1     public Map<String, Object> getUserInfo(@RequestParam String userId) {
    2         return getUserInfo(userId);
    3     }

    对应JMeter的传参方式Parameters。如下:

    (2)Json的方式。

    1     public Map<String, Object> getUserInfo(@RequestBody UserInfo userInfo) {
    2         return getUserInfo(userId);
    3     }
    4 
    5     @Data
    6     public class UserInfo {
    7         private String userId;
    8     }

    对应JMeter传参方式Body Data。如下:

    传参时,还需要指定传参格式,即请求头中的参数Content-Type。

    (1)使用Parameters时,Content-Type传:application/x-www-from-urlencoded。

    (2)使用Body Data时,Content-Type传:application/json。

    Content-Type的默认值为application/x-www-from-urlencoded,所以当使用Parameters时可以不传。

    设置Content-Type的方法。右键“HTTP请求”→“添加”→“配置元件”→“HTTP信息头管理”。添加一对健值。如下图:

    这样设置的参数值固定的,有时候我们可能希望参数是动态的,可以通过下面这种方式。

    5、动态请求参数的设置。

    (1)动态参数使用到Bean Shell PreProcessor。右键“HTTP请求”→“添加”→“前置处理”→“Bean Shell PreProcessor”。

    在Script里,根据你需要的规则生成参数的值,并使用vars.put(String key,String value)把数据存到JMeter变量中。如上图。

    (2)然后在HTTP请求页中以 ${key} 的格式,引用对应的变量。如下图:

      以上就是JMeter调用接口的方法,是不是很简单,很方便。当然还有很多高级的用法,有兴趣,可以慢慢探索。

  • 相关阅读:
    atitit.ntfs ext 文件系统新特性对比
    Atitit.图片木马的原理与防范 attilax 总结
    Atitit.图片木马的原理与防范 attilax 总结
    Atitit.jdk java8的语法特性详解 attilax 总结
    Atitit.jdk java8的语法特性详解 attilax 总结
    Atitit.远程接口 监控与木马   常用的api 标准化v2 q216
    Atitit.远程接口 监控与木马   常用的api 标准化v2 q216
    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结
    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结
    Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx
  • 原文地址:https://www.cnblogs.com/pcheng/p/13055234.html
Copyright © 2011-2022 走看看