Jmeter接口测试-redis测试客户端连接数问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter接口测试-redis测试客户端连接数问题相关的知识,希望对你有一定的参考价值。
参考技术A 1、jmeter脚本,请求redis key连接数达到一定数量时,请求报500,无法正常请求成功报错内容大致如下:
看报错内容,并看不出来具体问题在哪
2、查看redis客户端连接数
性能redis(6380):0>info clients
"# Clients
connected_clients:1970 #当前连接数
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
"
性能redis(6380):0>CONFIG GET maxclients
当客户端连接数超过10000时,请求被限制了,所以脚本请求报500,无法请求成功,当连接数消费完下降时,又能正常请求成功
Jmeter4.0接口测试之案例实战
在前面的知识体系中介绍了Jmeter的基本应用,下来通过具体的案例来看Jmeter在接口测试中的具体案例实战部分。
HTTP是基于应用层的协议,底层的网络传输层它不需要去关心,同时它是一个无状态的协议,它的请求流程具体可以总结为:
1、客户端连接服务端建立TCP的连接;
2、客户端发送(Request)请求到服务端;
3、服务端响应( Response)回复给客户端;
4、客户端与服务端之间关闭TCP的连接。
HTTP在版本1.0以及现在使用的1.1中,它默认是持久连接,也就是Connection对应的Value值是:keep-alive,再通俗的说任意一端没有明确断开连接,保持TCP的连接。但是HTTP毕竟是一个无状态的协议,也就导致了cookie技术的发展,而Cookie是客户端的浏览器存储键值对的一些内容,首次客户端访问服务端的时候,服务端会把内容写入到客户端中,客户端下次访问的时候会带着键值对的内容发送到服务端,但是Cookie它是客户端的机制,敏感信息存储在客户端是很不合理的,也就有了Session,客户端发送请求到服务端,服务端会把信息保存在内存中,客户端下次请求的时候带上SessionID的信息来保持会话的连接。比如登录博客园登录后,想查看博客园的粉丝信息,必须是保持在登录的状态,并且是客户端得明确的告诉服务端是查看那个用户的博客园的粉丝,如果客户端请求的时候不带SessionID的信息,服务端会直接拒绝客户端的请求并且跳转到登录的页面。
通过Charles工具来查看博客园粉丝的请求信息,见截图:
再看服务端返回的响应内容数据:
下面使用Jmeter来实现该接口,查看我的粉丝,见Jmeter的截图
执行后,见执行的结果:
跳转到登录的页面,并没有跳转到我的粉丝的页面,这是因为客户端在发送请求的时候并没有在请求头中带Cookie,所以服务端认为是无登录,跳转到登录的页面, 下来处理这部分,在客户端发送请求的时候,在请求头中带上Cookie,见带上后的截图:
再次执行,就返回我的粉丝的响应数据,见截图:
以上是关于Jmeter接口测试-redis测试客户端连接数问题的主要内容,如果未能解决你的问题,请参考以下文章
jmeter测试文件上传接口报错:connection reset by peer: socket write error