接口压测工具--jmeter

jmeter

    jmeter是apache公司基于java开发的一款开源压力测试工具,是一个较轻量的测试工具。运行需要安装jdk环境,jmeter为免安装软件,

        解压后直接运行jmeter执行脚本即可。它也是跨平台的,支持在windows、linux、macos上使用。

    1 jmeter-http接口脚本基本流程

      添加线程组

      添加http请求

      在http请求中写入url、路径、请求方式、参数

      添加查看结果树

      调用接口、查看返回值

      具体操作见下图示:

      

      有时还需添加cookie和header,只需在【配置元件】里添加【HTTPCookie管理器】和【HTTP信息头管理器】即可,其配置如图示:

      

      cookie的名称、值依据接口文档填写,域需要填写HTTP请求页里的【服务器名称或ip】。

      

      header的名称、值依据接口文档填写。

      添加【查看结果树】

        【添加】-【监听器】-【查看结果树】,具体界面如下图示:

        

        通过【查看结果树】可以查看请求数据,也可查看服务器的响应数据,以此来判断测试结果。

    2 jmeter-参数化

      jmeter参数化有三种方式:

        用户定义的变量

          这种是为了方便管理参数,只能有一个值,比如ip地址。

          在线程组中添加一个用户定义的变量,然后写key、value就可以,key是参数名,value是具体值,调用时使用${key},其中key就是变量名称。

          如下图中变量名称是ip:

          

          

        函数生成器

          可参照一定规则生成数据,比如生成随机数、时间等。

          函数助手可按照规则生成一些参数,常用的参数有随机数__Random、获取当前时间__time、唯一值__UUID。

            随机数__Random,可在指定范围内取随机数

            获取当前时间__time,获取当前系统时间,具体格式为:yyyy-MM-dd HH:mm:ss

            唯一值__UUID,每次生成一个随机的uuid,都是唯一值

            

            

            

            

        从文件中读取

          事先写好数据,然后从文件中读取数据,比如登录接口的账号、密码。

          从文件中读取,需要三个步骤:读取文件、取文件内容里的参数,赋予一个名字、使用值

          从文件读取的话,需要在线程组里添加【CSV Data Set Config】,如下图示:

          

    3 jmeter断言

      断言是用来检查返回接货对不对的,如果对,就代表请求返回正确;如果没有的话,就代表请求结果与预期不一致,并以此来作验证测试是否通过。

      添加方法:【添加】-【断言】-【响应断言】,添加后的界面如下图示:

        

    4 jmeter-关联

      关联是获取到服务器返回的值,保存起来,给别的请求使用,做一些其他处理。

      jmeter关联是通过正则表达式提取器来完成的添加方式为:

        【添加】-【后置处理器】-【正则表达式提取器】,字段详解见下图示:

                 

        通过上面的关联,其他请求使用时,调用${code}就可以获取到关联数据。

        另可通过加载第三方插件来做关联:[email protected] - JSON Path Extractor

         【添加】-【后置处理器】-【正则表达式提取器】,字段详解见下图示:

        

        此种关联方式适用于响应数据为json串的方式,操作上更简单一点。

    5 jmeter-mysql操作

      要操作mysql需要引入第三方jar包,因为jmeter本身不能直接连接mysql,操作mysql需要如下步骤:

        在测试计划里导入jdbc的jar包

        创建数据库连接配置(mysql的url、端口号、账号、密码等)

        写sql语句,执行sql

        查看结果

        具体操作见下图示:

        【测试计划】-【Add directory or jar to classpath】下导入jdbc的jar包

        

        【添加】-【配置元件】-【JDBC  Connection Configuration】

        

        配置mysql连接池名称,要与后面sql请求的【Variable Name】一致

        数据库的url:

          jdbc:mysql://192.168.1.116:3307/bugfree?allowMultiQueries=true

        数据库驱动:

          指定数据库类型是mysql、orcle、sqlserver等,驱动列表如下:

          

        账号密码:

          所连接数据库的账号、密码。

    6 测试结果查看

      【添加】-【监听器】-【聚合报告】,具体参数解释见下图示:

      

      查看结果需关注的几个指标:

        tps,每秒处理的请求数,tps越高说明服务器处理能力越好

        响应时间,每个请求的处理时间

        并发用户数,即并发量

    7 jmeter-linux下运行

      linux下运行jmeter是在jmeter的bin目录下执行jmeter.sh脚本,命令如下:

      sh jmeter.sh -n –t a.jmx -l res.jtl

        -n  代表以没有图形化界面启动

        -t   代表后面是测试脚本

        a.jmx  就是做好的测试脚本

        -l    代表后面是测试结果

        res.jtl  就是测试结果文件

      若要在查看结果树中查看测试结果,只需在【查看结果树】视图中导入这个res.jtl文件即可。

    8 jmeter 添加负载机

      压测过程中,当并发较大,一台机器已经启动不了那么多并发时,需要添加负载机。

      首先在做压力机的机器上启动jmeter的代理:

        jmeter的bin目录下有一个jmeter-server,启动它即可,此文件就是jmeter代理。

      然后在控制机上添加压力机ip:

        jmeter的bin目录下有一个jmeter.properties,打开后找到remote_hosts模块,添加ip后重新启动jmeter,就可以在jmeter里看到压力机了。

        

        

        

        

时间: 2024-10-28 10:58:39

接口压测工具--jmeter的相关文章

JMETER获取短信验证码接口压测

主要学习的内容包括发送HTTP请求.HTTP信息头管理器.HTTP cookies管理器.用户定义的变量.响应断言.CSV数据文件设置的使用. 一.测试相关网站及接口说明: 提供的测试网址为:http://www.qk365.com/security/register 使用Chrome浏览器,先将浏览器的cookies缓存清空. 清空后,打开待测试的网址,按F12键,输入要注册的手机号码,如“18300987622”,点击“发送验证码”,可以看到请求的接口为:http://www.qk365.c

Jmeter接口压测快速入门

[TOC] Jmeter简介 Jmeter是Apache开源的一个使用纯Java编写的压力测试工具,它最初是为测试web应用程序而设计的,但后来扩展到了其他测试功能.例如,可用于测试静态和动态资源以及web动态应用程序的性能等.Jmeter可以用来模拟对服务器.服务器组.网络或对象上的重负载,以测试其强度或分析服务在不同负载类型下的总体性能. 如今Jmeter是一个主流的.功能完善且强大的压测工具,由于是使用Java编写的,所以具有跨平台特性,可以运行在Windows.Mac.Linux等操作系

接口压测笔记(二)

隔了很久再来写第二篇随笔,这篇文章的内容是关于简单接口压测的记录已经报告. 上篇记录了Jmeter的简单操作已经接口的压测,这篇是对接口压测做一些记录,我目前完成公司的任务所记录下的表格. 步骤: 1.先打开我们的Jmeter压测工具,建立一个新的线程组 2.在线程组下面建立一个新的Http请求(Sampler中),以及察看结果树(看请求是否对错,以及访问接口之后返回的信息).聚合报告(吞吐率等相关数据的记录).图形报告(接口在访问过程的图形,不过这边可以不看,问题不大) 3.Http请求的地址

Dubbo接口压测

在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳理:通过 ops平台 - 应用 - 监控模块 [示例] 获取频繁访问的接口,确定需要压测的接口列表 测试数据准备:根据接口请求的参数列表,从qa库中捞取需要的测试数据,导出到csv备用 二.压测脚本编写(jmeter版本3.2) A: Nova或Dubbo接口 这类接口的压测需要借助jmeter的高

Http压测工具wrk使用指南

用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持LuaJIT和OpenSSL,不过不用担心,大多数类Unix系统都支持.安装wrk非常简单,只要从github上下载wrk源码,在项目路径下执行make命令即可. git clone https://github.com/wg/wrk make make之后,会在项目路径下生成可执行文件wrk,随后

[软件测试]网站压测工具Webbench源码分析

一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench使用C语言编写,下面是其下载链接: http://home.tiscali.cz/~cz210552/webbench.html 说到这里,我赶脚非常有必要给这个网站局部一个截图,如下图: 第一次看到这张图片,着实吃了一精!居然是2004年最后一次更新,我和我的小伙伴们都惊呆了.不过既然现在大家还都

swingbench-免费的oracle性能压测工具

SwingBench介绍: SwingBench由负载生成器,协调器和集群概述组成.该软件使得能够生成负载并且将图表的事务/响应时间映射. SwingBench可用于演示和测试诸如实际应用集群,在线表重建,备用数据库,在线备份和恢复等技术 SwingBench附带的代码包括6个基准,OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest .. OrderEntry基于Oracle11g / Oracle12c附带的"oe

使用压测工具ab实现搭建的页面压测

使用压测工具(ab/webbench等)实现搭建的页面压测,要求通过调整apache的工作模式来对比最后性能. 配置文件位置:/etc/httpd/conf/httpd.conf <IfModule prefork.c>  //如果加载了这个模块,就实现一下配置,一个条件化模块加载 StartServers        8  //服务在启动时默认启动几个子进程 MinSpareServers    5  //最小空闲进程数量 MaxSpareServers    20  //最大空闲进程数量

一个简单的websocket压测工具tcpkail

简介 tcpkali是一个高性能的负载生成工具,用于TCP和WebSocket服务器.采用C/C++开发并在BSD协议下授权,是一个开源的web压测工具,类似于apache的ab,但tcpkail同时支持websocket和httpd协议. 关于tcpkail的一些特性 高效的 CPU 利用率,可使用所有 CPU 核 允许同时打开大量的并发链接 (--connections) 允许限制单个连接的吞吐量 (--channel-bandwidth or --message-rate) 允许指定首页消