浅谈前置处理器之取样器超时
取样器取样器超时设置决定了JMeter等待取样器完成并接收响应的最大时间长度。如果在这个时间内未收到响应,取样器将标记该请求为超时错误。
参数说明
● 在取样器超时的配置界面找到“Sample timeout(in milliseconds)进行设置。
● 超时值以毫秒为单位,默认情况下设置为10000。
为什么设置取样器超时很重要
- 控制测试稳定性:防止单个慢响应或无响应的取样器阻塞整个测试计划的执行。
- 模拟用户行为:在网络不稳定或服务器响应缓慢的情况下,模拟真实用户的放弃行为。
- 资源管理:避免因长时间等待响应而消耗不必要的系统资源。
应用实例
我们可以通过SpringBoot框架编写一个测试接口,部分代码如下
@RestController
public class Welcome {
@GetMapping(value = "/welcome")
public String welcome(){
try{
Thread.sleep(1000);
}
catch (Exception e){
e.printStackTrace();
}
return "Hello World";
}
}
我们编写如下脚本
线程组:保持默认
HTTP请求:协议:http,服务器名称或IP:127.0.0.1,端口号:8091,方法:GET,路径:/welcome,内容编码:UTF-8
情况1:超时时间范围内
取样器超时设置超时时间为10000毫秒,运行脚本查看结果树
脚本运行通过
情况2:响应超时
取样器超时设置超时时间为50毫秒,运行脚本查看结果树
脚本运行失败,查看HTTP请求中的响应数据
java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
有相应的信息报错
应用场景
● 性能阶梯测试:随着测试的进行,逐步减小超时时间,以模拟用户耐心减少的情况。
● 环境适应性测试:根据目标测试环境的预期响应时间自动调整超时设置。
最佳实践
- 明确需求:在设置超时之前,理解应用程序的性能指标和用户期望。
- 测试验证:进行初步测试以确定合理的超时阈值,避免过早或过晚触发超时。
- 日志记录:使用监听器记录超时事件,以便分析和调优。
- 资源监控:在执行测试时,监控系统资源,确保超时不是由于资源不足导致的。
总结
通过上述方法和实践,可以有效地利用JMeter的前置处理器来管理和优化取样器超时设置,从而提高性能测试的精确度和效率。
标签:java,浅谈,响应,SocketInputStream,测试,取样器,超时 From: https://blog.csdn.net/u012151594/article/details/140146446