JMeter Sampler-http请求之KeepAlive使用总结
Sampler-http请求之KeepAlive使用总结
测试环境
apache-jmeter-2.13
KeepAlive使用介绍
说明:
1、Use KeepAlive
勾上,则表示为求连接设置请求头Connection: keep-alive
,该配置对默认的HTTP实现不起作用,因为连接重用不受用户控制,对Apache HTTP组件HttpClient
起作用。
这个配置到底有啥用呢?
我们都知道,发起HTTP请求时,需要建立TCP连接,对于普通非keep-alive
请求,即不包含请求头Connection: keep-alive
的请求,请求完成后,会关闭该TCP连接,再次发起同类请求时,需要再次建立TCP连接,高并发的情况下,会增加服务器资源消耗,对于keep-alive
请求,则会告诉服务器,HTTP请求结束后,在条件允许的情况下,保持TCP连接,下次发送请求时,使用上次建立的TCP连接进行数据传输。至此,这个配置有啥用,就不用我说了吧
2、注意,这里KeepAlive
是针对同一个线程而言的,其使用效果受到多
方面影响,如下:
客户端
Http实现
HTTPClient4
使用Apache Http组件 HttpClient 4.x(推荐使用)
Java
使用JVM提供的HTTP实现。
空值
如果HTTP请求默认值
配置元件中,Advanced
选项卡中有设置非空请求客户端实现,则使用该客户端实现,否则使用jmter.properties
文件中jmeter.httpsampler
属性定义的客户端实现,否则使用默认的 HttpClient4
。(原文:Blank value does not set implementation on HTTP Samplers, so relies on HTTP Request Defaults if present or on jmeter.httpsampler property defined in jmeter.properties
注意:Java
HTTP实现有以下限制:
- 因为没有对连接重用做控制。所以,当连接被JMeter释放时,该连接可能被相同的线程重用,也可能不被重用。
- 最适合单线程使用—各种设置都通过系统属性定义,因此作用于所有连接。
- 通过代理处理HTTPS时存在bug(
CONNECT
未正确处理)。请参阅Java Bug 6226610和6208335。 - 不支持虚拟主机。
- 仅支持这些方法:
GET
,POST
,HEAD
,OPTIONS
,PUT
,DELETE
和TRACE
- 不支持使用密钥库配置进行基于客户端的证书测试。
JMeter配置
使用HTTPClient4
实现时,连接重用还受到JMeter自身参数配置文件httpjmeter.properties
中httpclient4.time_to_live
参数配置的影响,如下,该参数值以毫秒为单位,默认为2000,无论如何,http的生存时间,超过该参数值的连接,不会被重用。
httpclient4.time_to_live=2000
服务端
JMeter Use KeepAlive
使用效果可能受到服务器相关配置影响,不同类型的服务器配置不一样,以Nginx
为例子,和以下配置相关
keepalive_requests number
设置通过一条keep-alive
连接可以服务的最大请求数。当请求数超过该指令设置的最大值时,连接将被关闭。
keepalive_time time
限制通过keep-alive
连接发起的请求,可以被处理的最大时间,达到该时间,则关闭该连接
keepalive_timeout timeout;
timeout
设置keep-alive
客户端连接在服务器端保持open状态时间,超过这个时间服务器将关闭连接。如果设置为0,那么禁用keep-alive
客户端连接。
JMeter Sampler-http请求之KeepAlive使用总结的更多相关文章
- Jmeter代理服务器录制请求
1.文档前提说明 1)本文使用jmeter的版本为 apache-jmeter-2.13 及以上版本 2)java版本要求在 1.8.0 以上 注:jmeter版本一般和java相应的版本一起使用,如 ...
- Jmeter的客户端实现与Keep-Alive
Jmeter的客户端实现与Keep-Alive 目录 Jmeter的客户端实现与Keep-Alive 0. 结论 1.缘起 1.1 起因 1.2 初步尝试 1.3 Jmeter客户端实现 1.4 Ja ...
- 转:应用JMeter测试solr请求
使用JMeter测试solr请求 一.安装JMeter 在官网http://jmeter.apache.org/download_jmeter.cgi下载JMeter 直接解压JMeter安装包 Li ...
- jmeter测试HTTP请求
HTTP超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.(详情参考看一下百科) HTTP发送请求有GE ...
- Jmeter发送Json请求
jmeter发送的post请求,可以是json请求,和普通的post请求稍微有点区别,那么怎么用jmeter发送json请求呢? 首先要找一个json请求的例子,这个例子是携程网搜索机票, 网址为:h ...
- jmeter 的java请求代码在main方法里面执行
1.新建一个java请求执行加法类 public class TestDemo { public int Tdemo(int a,int b){ int sum = 0; sum = a+b; ret ...
- jmeter 发送http请求,并把获取到的请求的订单信息保存到文件中
有一个任务,需要频繁发送订单请求,并分析订单请求中有没有存在重复订单号,思路是用jmeter 发送http请求,使用正则表达式获取到订单号,并把订单号和线程号作为参数提供给java请求,在java请求 ...
- jmeter之java请求
通常情况下,推荐使用jmeter之java请求编写一beashell调用java代码(上篇)(推荐)编写Java 请求 有以下优势 脚本易维护 易调试 开发脚本周期短 不过网上扩展java请求文章比较 ...
- JMeter处理jdbc请求后的响应结果
JMeter如果进行JDBC请求,请求后的响应结果如何给下一个请求用(也就是传说中的关联),于是研究了一下,下面将学习的成果做个记录: 1.添加 "JDBC Connection Confi ...
- Jmeter发送JDBC请求
下午花了两个小时研究了一下Jmeter发送JDBC请求,现在把基本操作流程分享一下. 做JDBC请求,首先需要两个jar包:mysql驱动-mysql-connector-java-5.1.13-bi ...
随机推荐
- SpringMVC在处理Ajax请求后返回void导致前台Ajax回调函数不执行
问题简述 在一次SpringMVC项目中,前台通过Ajax请求,准备修改数据库中的数据.因为Ajax请求只是让后台更改数据,所以Controller方法根本不需要返回给前台任何数据,所以我们将Cont ...
- django设置中文和上海时间
在settings.py配置文件中进行配置: # 设置为中文 LANGUAGE_CODE = 'zh-hans' # 设置 "亚洲/上海" 时区 TIME_ZONE = 'Asia ...
- Django路由控制器urls
路由, 是一种映射关系,是把客户端请求的url地址和用户请求的应用程序(这里指django里面的视图进行一对一绑定映射的一种关系). 在django中所有的路由最终都被保存到一个变量 urlpatte ...
- 20220314线上panic总结
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentatio ...
- 设置 ASP.NET Core Web API 中响应数据的格式 AddNewtonsoftJson 使用NewtonsoftJson替换掉默认的System.Text.Json序列化组件
#region 使用NewtonsoftJson替换掉默认的json序列化组件 .AddNewtonsoftJson(options => { 修改属性名称的序列化方式,首字母小写 //opti ...
- 使用kubadm部署一套k8s学习平台环境
使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...
- this,构造器,static,final,单例模式
this关键字 在java中this是一个引用变量,即指向当前对象地址的引用(指针),→可以把this当作当前对象,便于更好的索引. this() 实际是调用了当前对象的构造器 1. 引用当前对象的属 ...
- Chapter1 p1 Output Image
由于本文章是对TinyRenderer的模仿,所以并不打算引入外部库. 那么我们第一步需要解决的就是图形输出的问题,毕竟,如果连渲染的结果都看不到,那还叫什么Renderer嘛. 由于不引入外部库,所 ...
- INFINI Console 与华为鲲鹏完成产品兼容互认证
何为华为鲲鹏认证 华为鲲鹏认证是华为云围绕鲲鹏云服务(含公有云.私有云.混合云.桌面云)推出的一项合作伙伴计划,旨在为构建持续发展.合作共赢的鲲鹏生态圈,通过整合华为的技术.品牌资源,与合作伙伴共享商 ...
- 双网卡、多网卡指定IP分别访问网卡(windows添加静态路由)
有两块网卡,网关分别是 128.0.100.198 和 192.168.10.2,128.0.100.198,网速10M.192.168.10.2,网速100M.平时上网用192.168.10.2,访 ...