我用的是我们公司的测试环境练习的 网址:http://****:9000/login.html  账号是admin 密码:123456 一.打开Jmeter 找到安装目录:bin->Jmeter.bat 点他,就打开了 二.新建线程组 新建完成后,如下图.因为我们只是试试看是否能走起来,下面这些就暂时不配置 三.添加HTTP信息头管理器 线程组,右击,配置元件->HTTP信息头管理器,一般测web,都要加上HTTP信息头 添加值:Content-Type:application/json 四.…
前言 最近用jmeter做一些接口的压力测试,记录下使用过程中遇到的一些问题. 在使用window机器做并发压测的时候,发现并发数设置100的时候,会出现报错:java.net.SocketException: Socket operation on nonsocket: connect 环境准备: java 1.8 jmeter 5.1.1 jmeter环境 jmeter环境依赖JAVA环境,需安装JDK1.8环境,JDK环境安装网上一大堆教程,自己去想办法吧,我这里就不多说了. jmeter…
前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况.如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有可参考性. 场景案例 一.仍用项目中原来的登录压登录 http:****:9000/***/userWeb/login 二.准备压测的数据 login.txt中存10条登录数据,中间有逗号隔开 三.添加CSV Data Set Config 登录->添加->配置元件->CSV Data Set…
前言 使用jmeter做接口压测的时候,如何能保证接口的每次返回结果都是我们预期的呢?这就需要添加检查点,也就是添加断言. 添加断言就是为了检查返回的结果与我们的预期是一致的,不用去一个个检查结果. 场景案例 我现在有一个登录接口,接口登录接口文档基本信息 访问地址:http://127.0.0.1:8000/api/v1/login/ 请求类型:POST 请求头部:Content-Type: application/json 请求参数:{"username":"test&q…
前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用户只能修改自己的个人信息. 场景案例 我现在有一个登陆接口A,登陆成功后返回一个token值.A接口登录接口文档基本信息 访问地址:http://127.0.0.1:9000/api/v1/login/ 请求类型:POST 请求头部:application/json 请求参数:{"username&…
前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况. 如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有可参考性. 场景案例 我现在有一个登录接口,接口登录接口文档基本信息 访问地址:http://127.0.0.1:8000/api/v1/login/ 请求类型:POST 请求头部:Content-Type: application/json 请求参数:{"username":"…
前言 使用jmeter做压测的时候,在windows上不太稳定,所有一直在linux服务器上使用jmeter做压力测试. 本篇记录下linux上搭建jmeter环境,以及运行jmeter脚本,查看报告. 相关环境: java 1.8 jmeter 5.1.1 java环境 先在Linux上安装java环境,安装1.8.0版本,先查找java相关的列表 yum -y list java* [root@VM_0_2_centos ~]# yum -y list java* Loaded plugin…
前言 使用jmeter 做压测的时候,希望对一个接口持续压测 10 分钟或者半小时,可以使用调度器设置持续压测时间. 设置样本总数 压测方式有2种,一种是设置线程组和循环次数,这样可以设置一个样本总数,完成固定次数的请求后结束. 比如我线程组设置5,循环次数为10,那么总样本数就是5*10=50 查看聚合报告,样本数是固定的50,达到50个后会结束 调度器 通过控制总的请求次数,我们没法控制结束时间,有时候领导要求压测10分钟或者半小时,怎么办? 第二种压测方式,使用调度器设置持续时间,控制压测…
注意:我是根据我司的项目写的,这里作为一个笔记使用,不要照搬. 一般登录操作,都会有个token,我们要提取token作为参数,用于后面的操作. 接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值. 一.看看我们要提取的token 我要提取的是登录接口返回参数中的data 二.Json提取器 登录右击添加->后置处理器->JSON Extractor JSON提取器参数说明: Variable Names 参数名称 JSON P…
前言 有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面. 并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数,如:csrfmiddlewaretoken 场景案例 我这里有个django项目的admin后台页面为案例 输入账号和密码登录成功后,抓包发现除了账号和密码参数,还有一个参数csrfmiddlewaretoken,并且这个参数每次都是动态的,不是固定值 所以在请求这个login接口的时候,需要先获取csrfmiddle…
前言 现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值. 上一个接口返回的token作为下个接口的入参. 案例场景 我现在有一个登陆接口A,登陆成功后返回一个token值.有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问 A接口登录接口文档基本信息 访问地址:http://127.0.0.1:8000/api/v1/login/ 请求类型:POST 请求头部:application/json…
没有遇到,直接转载:https://www.cnblogs.com/yoyoketang/p/11962553.html 前言 有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面.并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数,如:csrfmiddlewaretoken 场景案例 我这里有个django项目的admin后台页面为案例 输入账号和密码登录成功后,抓包发现除了账号和密码参数,还有一个参数csrfmiddlewar…
我司项目暂时不需要,直接转载:https://www.cnblogs.com/yoyoketang/p/11963342.html 前言 web网站的请求大部分都有cookies,jmeter的HTTP Cookie管理器可以很好的管理cookies.我用的 jmeter5.1 版本,直接加一个HTTP Cookie管理器放到请求的最前面,就可以自动管理cookies了.看到网上有些教程说要把jmeter.property文件中将 CookieManager.save.cookies 设置为tr…
前言 web网站的请求大部分都有cookies,jmeter的HTTP Cookie管理器可以很好的管理cookies. 我用的 jmeter5.1 版本,直接加一个HTTP Cookie管理器放到请求的最前面,就可以自动管理cookies了. 看到网上有些教程说要把jmeter.property文件中将 CookieManager.save.cookies 设置为true,我这里 jmeter5.1 版本不用设置也成功了. 场景案例 当登录成功了,服务端会返回2个token 因为这个请求登录成…
前言 上一个接口返回的token作为下个接口的入参,除了前面一篇讲到的用json提取器提取,也可以用正则提取. json提取器只能提取json格式的数据,正则可以匹配任意的返回. 我现在有一个登陆接口A,登陆成功后返回一个token值.有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问 A接口登录接口文档基本信息 访问地址:http://127.0.0.1:8000/api/v1/login/ 请求类型:POST 请求头部:application/json 请求参数:…
上一个随笔记录的是用json提取器提取token,这个随笔记录用正则表达式提取token 一.添加正则表达式 登录右击添加->后置处理器->正则表达式提取器 正则提取器参数说明: 要检查的响应字段:样本数据源,默认选主体. 引用名称:其他地方引用时的变量名称(re_token),可自定义设置,引用方法:${引用名称} 正则表达式:数据提取器,()括号里为你要获取的的值,如:"token": "(.*?)" 模板:$$对应正则表达式提取器类型.-1全部,0…
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps:服务端每秒钟能处理的请求数. 响应时间:就是你从发出请求到服务端返回给你数据的时间. 二.jmeter操作数据库 在测试计划中添加mysql-connector-java-5.1.7-bin.jar 最后添加查看结果树.如果既要查询又要修改操作选择Callable Statement这个模式. 断言…
jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒处理的请求数,数值越大证明服务器处理能力越好:响应时间 :client端发送第一包数据到server端处理后client接受到最后一包数据的时间: jmeter添加压力机三步曲: 1.先在负载机上启动jmeter-server(Windows:jmeter-server.bat Mac/Linux:…
https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量用户并发使用人脸识别功能登录的情况,需要对涉及到的接口进行压力测试(后续简称压测),来确保上线后的系统质量更稳定.2 压测环境配置压测发起设备:windows 10网络:局域网压测软件:Jmeter 5.0压测系统内存:Ubuntu 4核8GPHP 版本:php7.1.23Nginx 版本:ngin…
​    ​接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本,后续结合项目的实际的实用,还是靠各位,贴合我们的实际的项目去制定适合本公司转化的脚本.具体的业务还是要实际的分析的.首先看下我的思路 1.点击一键生成 2.后台拿到测试环境id,测试用例id 3.后台去交验是否存在测试环境,测试用例id. 4.后台开始根据用例请求参数,组织Jmeter脚本 5.产生…
概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件,它支持众多语言,例如nodeJs, C++,.NET,Java,Delphi,Objective-C,ActionScript,JavaScript,ASP,PHP,Python, Ruby,Perl等. 什么是RPC? RPC(Remote Procedure Call Pr…
前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟然还能发现Struts的东西,令人甚为感怀,挺好奇你们的云笔记长什么样子. 话说,我如果一直这么记下去,有朝一日能成为IT界的司马迁不哈哈? 为何JMeter 犹记得当年工作之初,压测根本不成为话题,当时的框架也相对复杂,和现在的SpringBoot用法简直云泥之别,在那种环境下,除了大公司,压测自…
使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设置HTTP手动代理(服务器为电脑的IP,端口号为8888) 4.jmeter启动代理 5.手机端登陆使用app,jmeter录制到了脚本…
JMeter压测基础(三)——Mysql数据库 环境准备 mysql驱动 JMeter jdbc配置 JMeter jdbc请求 1.下载mysql驱动:mysql-connector-java.jar 2.添加jar包 test plan->Add directory or jar to classpath,添加mysql-connector-java.jar 3.jdbc配置 一般jdbc配置在线程组中 填写对应数据库的URL.Driver class.用户名.密码等等 3.添加jdbc请求…
jmeter压测参数设定 一.基本公式 线程数 = QPS * time: 注:QPS--每秒完成请求的个数:time--每个请求响应完成平均需要时间: 故QPS * time就是所有请求完成响应所需要的总时间,如果需要在一秒完成所有请求的响应,所以线程数需要等于总时间值 二.参数值设定 以下情况前提:所有线程数完成时间设置为1秒 1.若QPS有预期值, 设置定时器Throughput的值(与QPS接近),线程数随机设置一个比较小的值,开始启动压测,观察error比例(如果很小,符合要求,否则需…
jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始化的代码放在 runTest中执行.修改后放在 setupTest方法中运行,只运行一次.解决实例化消耗内存问题. import com.alibaba.fastjson.JSONObject; import org.apache.jmeter.config.Arguments; import or…
jmeter 压测 一般压测的时间是10-15分钟 TPS:服务端每秒钟处理的请求数  越大越好 响应时间 :越短越好 并发用户数  也就是多少并发 指标给你:tps要达到多少 响应时间要达到多少 并发数是多少 jmeter 添加压力机 1.先在其他的负载机(另外的电脑)上启动jmeter-server (jmeter-server.bat  windows) (jmeter-server.sh mac.linux) 主控机和负载机 2.修改主控机jmeter的配置文件jmeter.proper…
之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意思看,是地址被占用了. 查资料才知道是windows本身提供的端口数量有限制.导致接口请求时,端口被占用:Windows XP提供给 TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收他们.就导致我们在短时间内跑大量的请求时将端口占满了. 解决步骤: 1.cmd中,用regedit…
1.误区 在JMeter压测过程中,我们通常认为1s内100的并发量(即:QPS为100)的设置如下: 此时,没有再添加额外的控制器.上述中的参数设置解释:Number of Threads(users): 启用的并发线程个数Ramp0up Period(in seconds):在多少秒之内将上述并发的线程启动起来Loop Count:控制循环次数说明:一个常见的误解,认为Number of Threads(users)设置为100,Ramp-Up Period(in seconds)设置为1,…
由于在java中添加了第三方安全策略文件,具体请看https://www.cnblogs.com/mrjade/p/10886378.html,导致在用jmeter压测过程中会遇到以下错误 解决办法: 将bcprov-jdk15on-1.55.jar放至在 /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext 即可…