1 安装并配置Jmeter

Jmeter的安装不在这里阐述,安装步骤非常简单。

直接进入主题

1.1 数据库连接配置

由于测试过程需要调用数据库获取响应部署数据,因此需要先建立与数据库的连接。 如果不涉及数据操作,可以跳过此步骤。

步骤1:打开jmeter开源性能测试工具,测试计划->添加线程组

步骤2:添加jdbc request请求 –>添加JCBC connection Configuration 数据库连接配置

步骤3:配置jdbc request请求,添加sql查询语句

举例Sql语句:

select DISTINCT A.XX,A.XX,B.XX,A.XXX

from Table A

left join

(select XX,XX,XX,XXX from  TableB) as B

on A.XXX=B.XXX

where XX like 'KKK%';

步骤4:添加后置处理器  JDBC Request->后置处理器-> BeanShell PostProcessor

对选择出来的数据进行参数化处理。

import java.util.ArrayList;
String count_DB = vars.get("var_#");
int count = Integer.parseInt(count_DB);
ArrayList 变量ANoArray = new ArrayList();
ArrayList 变量BNoArray = new ArrayList();
for(int i=0;i<count;i++){String 变量A= String.valueOf(vars.getObject("result").get(i).get("变量A"));String 变量B= String.valueOf(vars.getObject("result").get(i).get("变量B"));变量ANoArray.add(变量A);变量BNoArray.add(变量B);
}vars.putObject("变量ANoArray",变量ANoArray);
vars.putObject("变量BNoArray",变量BNoArray);

1.2http请求配置

步骤1:增加循环循环控制器  线程组->逻辑控制器->循环控制器

步骤2:添加自增计数器

步骤3:添加Constant Throughput Timer (常数吞吐量定时器)

 Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的1000/s,这里的值应该是 60000。

注意:

Constant Throughput Timer只有在线程组中的线程产生足够多的request 的情况下才有意义,因此,即使设置了Constant Throughput Timer的值,也可能由于线程组中的线程数量不够导致没有生效。实测,一个线程可以启动10-20的并发,那么一个可设置300个线程左右。

步骤4:添加http请求

注意json格式的需要增加 http信息头管理器,Content-Type设置为application/json。

http的详细请求中根据业务的接口报文来添加数据,主要添加如下:

请求地址

URL

端口

请求报文

步骤5:添加前置处理器  http请求->前置处理器-> BeanShell PreProcessor

根据jdbc请求出来的数据,参数化,实现批量数据操作

import java.util.ArrayList;
String Counter_DB = vars.get("Counter");
int Counter_1 = Integer.parseInt(Counter_DB);
int Counter = Counter_1-1;
log.info("……………Counter………"+Counter);
ArrayList 变量ANoArray = vars.getObject("变量ANoArray");
ArrayList 变量BNoArray = vars.getObject("变量BNoArray");
String 变量A= 变量ANoArray.get(Counter);
String 变量B= 变量BNoArray.get(Counter);
vars.put("变量A",变量A);
vars.put("变量B",变量B);
log.info("……………变量A………"+变量A);
log.info("……………变量B………"+变量B);

步骤6:添加BeanShell Sampler实现请求数据的MD5加密

如果请求中的数据涉及md5加密,Jmeter自身没有实现MD5加密的函数,可以自定义一个jar包

参考:http://blog.csdn.net/yuanwq2012/article/details/51252649

注: MD5加密包放到此目录下,重启Jmeter即可生效

apache-jmeter-3.2\apache-jmeter-3.2\lib

3.3添加监控数据

在服务器上启动agent,作为服务端:

cd JmeterAgent/

./startAgent.sh –sysinfo

Jmeter 作为客户端连接服务器:

首先,需要获取JMeterPlugins-Standard-1.4.0插件包,并解压到本地任一目录下如D:\software\apache-jmeter-3.2\apache-jmeter-3.2\lib\ext目录下,重启Jmeter生效。

3.4 性能测试执行&数据收集

点击Jmeter的启动按钮,启动测试,测试过程注意观察请求结果是否有报错。测试结果如果不达标,则需要进行性能调优。

转载于:https://www.cnblogs.com/xiaoer/p/7670135.html

一个使用Jmeter做接口性能测试的实战案例相关推荐

  1. JMeter 做接口性能测试,YYDS!

    点击关注公众号,实用技术文章及时了解 来源:jianshu.com/p/0e4daecc8122 简介 本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已 ...

  2. 【技术博客】 利用Postman和Jmeter进行接口性能测试

    利用Postman和Jmeter进行接口性能测试 作者:ZBW 版本:v1.1 在Phylab的开发过程中,对于生成报告接口的性能考量十分重要.原有的Latex接口虽然生成的报告美观,但编译Latex ...

  3. Jmeter做接口的压力测试

    章节一压力测试课程介绍 1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介: 讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分 ...

  4. form表单用js提前执行函数若不成功则不提交_如何用Jmeter做接口自动化测试?跟着操作一次就明白了...

    Jmeter是Apache公司组织开发的一款基于Java压力测试工具,开源且支持多个操作系统,可以对测试静态和动态资源进行大并发负载模拟,或对服务器网络进行高强度并发测试,业界多将该工具应用于性能测试 ...

  5. python做小程序-【实战案例】利用Python做出趣味版防沉迷小程序

    今天带领大家利用Python做出趣味版防沉迷小程序 查询电脑的所有进程 用Python循环检测电脑软件的运行情况,当发现游戏软件时弹出警告窗口,并截图保存.学会这项技能,就再也不怕孩子偷偷打游戏了.下 ...

  6. 真人表述:一个技术支持人员的兼职创业实战案例

    在北京这个大城市,相信有很多像我这样的小职员,每天坐着公交车上下班,住在租住的房子里,每月拿着3000多的工资,却梦想能够实现成功之梦. 成功的定义是什么?最粗俗的说法,就是有房有车有老婆.要实现这个 ...

  7. 一个超详细的 Python 入门爬虫实战案例

    本文转自公众号:超哥的杂货铺 写在前面:本文从北京公交路线数据的获取和预处理入手,记录使用python中requests库获取数据,pandas库预处理数据的过程.文章在保证按照一定处理逻辑的前提下, ...

  8. 使用JMeter 进行接口并发性能测试

    Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做得比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试.因为在做接口测试时可以设置线程组,所以也可做接口性 ...

  9. “喜茶Go”微信小程序新零售商业实战案例经验分享-概述

    作者介绍:郝天翔,10年移动互联网软件行业经验,全栈高级软件工程师,微信生态开发先行者,主要参与智慧城市新零售电商领域方案的设计与实施,本次分享商业案例"喜茶Go"已落地于全国多座 ...

最新文章

  1. web前端培训之Javascript如何改变数组的长度?
  2. JVM内存管理------杂谈(借此也论一论obj=null)
  3. Apache Camel框架之事务控制
  4. leetcode896. 单调数列
  5. 20万RMB!学数据分析的朋友一定要看!
  6. 开启你的开源项目生涯_了解如何在5分钟内以开源方式开始您的职业生涯
  7. 一次Linux服务器***查杀经历
  8. webpack3+node+react+babel实现热加载(hmr)
  9. linux学习笔记:磁盘挂载与卸载命令
  10. vb6 由于超出容量限制 不能创建新事务_Executors类创建四种常见线程池
  11. 微博android签名工具,微博签名
  12. PDCA是什么意思?
  13. OLED屏幕的IIC驱动程序
  14. Yocto系列讲解[理论篇]24 - BitBake全过程(2)
  15. c语言 程序段 数据段,C语言程序的段
  16. 酷我音乐盒去广告方法(我用的是酷我音乐盒2010贺岁版)
  17. matlab学习——线性规划
  18. 软件工程 -- 系统流程图
  19. caffe生成lmdb数据集的脚本
  20. 016.文件和目录操作命令--md5sum

热门文章

  1. mysql的预准备语句_mysql – 将字符串插入到没有”的预准备语句中
  2. matlab 程序 收缩,基于MATLAB的小波收缩去噪方法研究(程序)
  3. truetype字体怎么转换成普通字体_banner设计字体怎么设计好看
  4. mongoose c++封装
  5. python大游戏_玩游戏就能学Python?太炫酷了!
  6. 我的YUV播放器MFC小笔记:设置picture控件背景为黑色、窗口缩放
  7. 屏蔽tomcat服务器报错信息,tomcat 屏蔽网络爬虫
  8. vue如何取消下拉框按回车自动下拉_如何用大白菜重装系统|大白菜怎么重装系统教程详解...
  9. integer比较_Java中的整型包装类值的比较为什么不能用==比较?原因是因为缓存
  10. java 获取内存地址_Java 的多态在 JVM 里原来是这样的