如何在JMeter test plan中自动获取特定API耗时及指定接口间耗时?
获取JMeter中特定API及API间耗时的自动方法
一、提取单个特定API的耗时
- 监听器自动统计:
添加Summary Report或View Results Tree监听器,它们会自动记录每个请求的Elapsed Time(耗时)。若需筛选目标API,可在监听器的Filter Results中设置请求名称/URL的匹配规则,运行后直接查看对应行的耗时数据。也可使用Backend Listener将数据同步至数据库或监控系统,后续通过查询语句提取统计结果,无需手动整理。 - 变量存储耗时数据:
在目标API的PostProcessor中添加JSR223 PostProcessor(推荐用Groovy,性能优于BeanShell),写入代码:
运行后,变量long apiElapsed = prev.getTime() vars.put("target_api_elapsed", String.valueOf(apiElapsed))${target_api_elapsed}将存储该API的耗时,可直接在后续逻辑或报告中调用。
二、计算Login与Ride Booking API的间隔耗时
要自动获取两个API之间的时间差,可通过时间戳记录实现:
- 在Login API的
PostProcessor中添加JSR223 PostProcessor,记录请求完成时间:long loginEndTime = System.currentTimeMillis() vars.put("login_end_time", String.valueOf(loginEndTime)) - 在Ride Booking API的
PreProcessor中添加JSR223 PreProcessor,记录请求发起时间并计算间隔:
运行后,long bookingStartTime = System.currentTimeMillis() long loginEnd = Long.parseLong(vars.get("login_end_time")) long interval = bookingStartTime - loginEnd vars.put("login_to_booking_interval", String.valueOf(interval))${login_to_booking_interval}即为Login完成到Ride Booking发起的间隔耗时,可通过Simple Data Writer监听器将数据输出至文件,无需手动查看。
三、自动化汇总与输出
- 使用
Simple Data Writer监听器,设置输出文件路径,勾选需保存的时间字段,运行后可直接从文件中提取所需数据。 - 结合JMeter命令行模式执行测试:
之后用Python/Shell脚本解析jmeter -n -t your_testplan.jmx -l results.jtl.jtl结果文件,批量提取特定API耗时及间隔数据,生成自定义报告。
内容的提问来源于stack exchange,提问作者Snehal Matharu
相关产品推荐
相关产品推荐

