乐于分享
好东西不私藏

JMeter插件开发

JMeter插件开发

JMeter 自定义 Java Sampler 开发指南 —— 以 Kafka 消息消费为例

    在性能测试中,JMeter 内置的采样器(如 HTTP Request)能满足大部分场景。但当我们需要测试自定义协议(如 Kafka、Socket、私有 RPC)或执行复杂的业务逻辑时,就需要开发自定义 Java Sampler。本文将结合一个从 Kafka 消费消息并校验内容的实际案例,详解开发流程与核心组件。

一、开发前置准备

  • JMeter 环境:下载并安装 JMeter,版本建议 5.x 以上。

  • 开发工具:IntelliJ IDEA 或 Eclipse,Maven 工程。

  • 依赖包:在项目中引入 ApacheJMeter_coreApacheJMeter_java,以及业务所需的 Kafka Client 等。

  • 打包部署:将编译后的 Jar 包(及依赖)放入 JMeter 的 lib/ext 目录,重启 JMeter。

二、自定义 Java Sampler 的核心组件

类/接口
作用
AbstractJavaSamplerClient
必须继承的抽象类,提供三个核心扩展方法。
Arguments
定义在 JMeter GUI 中显示的输入参数(名称、默认值)。
JavaSamplerContext
上下文对象,用于获取用户在界面配置的参数值。
SampleResult
记录采样结果(成功/失败、响应数据、耗时等)。

三、开发流程(三步法)

步骤1:继承 AbstractJavaSamplerClient 并实现三个关键方法
  1. getDefaultParameters()定义采样器在 JMeter 界面中的参数面板。用户可在此填入 Kafka 地址、主题、搜索关键字等。

  2. publicArgumentsgetDefaultParameters(){Arguments params =newArguments();    params.addArgument("kafka_host","192.168.118.168:7483");    params.addArgument("topic","hub-device-property");return params;}
  3. setupTest(JavaSamplerContext ctx)每个线程启动时执行一次(类似 JUnit 的 @Before)。适合做资源初始化,如读取参数、建立连接池。

    publicvoidsetupTest(JavaSamplerContext ctx){this.kafka_host = ctx.getParameter("kafka_host");this.topic = ctx.getParameter("topic");}
  4. runTest(JavaSamplerContext ctx)每次循环都会执行,核心采样逻辑写在这里。需要:

    SampleResult sr =newSampleResult();sr.sampleStart();// 业务逻辑...sr.setSuccessful(true);sr.sampleEnd();return sr;
    • 调用 sampleStart() 开始计时

    • 执行业务代码(如消费 Kafka、查询数据库)

    • 设置 setSuccessful(true/false)setResponseData()

    • 最后调用 sampleEnd() 结束计时

步骤2:编写业务逻辑(本例中的 Kafka 消费)

我们单独封装了一个 KafkaGetter 类(代码未给出,但可推测其内部使用 Kafka Consumer API),核心功能:

  • 根据 timeShift_mins 计算时间范围

  • 拉取 topic 中的消息

  • 返回包含 searchStr 的消息内容

💡 若 Kafka 消费逻辑涉及复杂依赖,建议独立为一个工具类,便于单元测试。

步骤3:打包与调试
  • 使用 maven-assembly-plugin 将依赖一并打包(或放入 JMeter lib 目录)。

  • 在 JMeter 中添加 Java Request 采样器,下拉选择你的类名。

  • 填写参数,添加监听器(查看结果树、聚合报告)运行测试。

四、代码关键点解读(结合例子)

代码片段
作用
sr.sampleStart()
 / sr.sampleEnd()
自动计算采样耗时(单位毫秒)
sr.setSamplerData(...)
记录请求参数,便于在“查看结果树”中追溯
sr.setResponseData(res, "utf-8")
将 Kafka 返回的消息内容展示在“响应数据”中
sr.setSuccessful(false)
当消息不包含关键字时标记失败,JMeter 会统计错误率

五、运行效果与断言示例

  1. 成功场景:Kafka 中存在包含 p_electric_meter 的消息 → 采样结果为绿色✅。

  2. 失败场景:消息中不包含该关键字 → 采样结果为红色❌。

  3. 可结合 JMeter 断言:直接在 runTest() 中判断相当于内置断言,也可额外添加响应断言元件。

六、注意事项

  • 线程安全runTest() 可能被多个线程并发调用,内部业务类应无状态或做好同步。

  • 资源释放:若在 setupTest() 中创建了连接,记得实现 teardownTest() 方法释放资源。

  • 日志输出:使用 SampleResult.setResponseData() 可以避免大量 System.out 影响性能。

  • 参数传递JavaSamplerContext 中的参数是字符串类型,数值型需要手动转换。

七、扩展建议

  • 支持动态参数:结合 JMeter 变量(${var})实现参数化。

  • 性能优化:Kafka 消费者可复用,避免每次采样都创建新连接。

  • 错误分类:通过 SampleResult.setResponseCode() 和 setResponseMessage() 区分业务失败和系统异常。

八、总结

通过开发自定义 Java Sampler,JMeter 的能力可以无限延伸至任何 Java 能调用的协议或中间件。本文案例完整演示了如何从 Kafka 拉取数据并校验内容,只需三步:

  1. 继承 AbstractJavaSamplerClient

  2. 实现三个核心方法

  3. 打包部署到 JMeter

代码:

package com.xxxsmart.testUtil;import org.apache.jmeter.config.Arguments;import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;import org.apache.jmeter.samplers.SampleResult;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.Serializable;/** * JMeter 自定义 Java Sampler - Kafka 消息消费者 * 用于从 Kafka 指定主题拉取消息,并检查是否包含目标字符串 */public class KafkaGetterJmeter extends AbstractJavaSamplerClient implements Serializable {    // 日志记录器(注:原代码中使用了 SleepTest 的类名,实际应使用当前类名更合理)    private static final Logger LOG = LoggerFactory.getLogger(org.apache.jmeter.protocol.java.test.SleepTest.class);    // 从 JMeter 参数面板中获取的配置项    private String kafka_host;      // Kafka 服务器地址    private String topic;           // 订阅的主题    private String searchStr;       // 需要在消息中搜索的关键字    private String timeShift_mins;  // 时间偏移(分钟),用于筛选消息时间范围    private String name;            // (已注释)可扩展的认证用户名    private String passwd;          // (已注释)可扩展的认证密码    /**     * 构造函数 - 在创建采样器实例时调用     */    public KafkaGetterJmeter() {        LOG.debug(whoAmI() + "\tConstruct");    }    /**     * 辅助方法:返回当前线程和对象哈希码,便于调试并发问题     */    private String whoAmI() {        return Thread.currentThread().toString() +                "@" +                Integer.toHexString(hashCode());    }    /**     * 【核心方法1】定义 JMeter GUI 中显示的默认参数     * 用户可以在界面中修改这些参数值     */    @Override    public Arguments getDefaultParameters() {        Arguments params = new Arguments();        params.addArgument("kafka_host""192.168.118.168:7483");        params.addArgument("topic""xxx-device-property");        params.addArgument("searchStr""p_xxx_meter");        params.addArgument("timeShift_mins""1");        // 可扩展的认证参数(目前未启用)        // params.addArgument("name", "username");        // params.addArgument("passwd", "password");        return params;    }    /**     * 【核心方法2】初始化/前置处理     * 在每个线程启动时执行一次,用于加载参数并建立连接等资源     */    @Override    public void setupTest(JavaSamplerContext arg0) {        // 从上下文对象中读取用户在 JMeter 界面填写的参数值        this.kafka_host = arg0.getParameter("kafka_host");        this.topic = arg0.getParameter("topic");        this.searchStr = arg0.getParameter("searchStr");        this.timeShift_mins = arg0.getParameter("timeShift_mins");        // this.name = arg0.getParameter("name");        // this.passwd = arg0.getParameter("passwd");    }    /**     * 【核心方法3】实际执行采样逻辑     * 每个样本(循环/迭代)都会调用一次     * @return SampleResult 包含状态、响应数据、耗时等信息的对象     */    @Override    public SampleResult runTest(JavaSamplerContext arg0) {        SampleResult sr = new SampleResult();   // 创建结果对象        // 标记采样开始(用于计算响应时间)        sr.sampleStart();        // 创建 Kafka 消费者助手类(实际业务逻辑在此类中实现)        KafkaGetter kr = new KafkaGetter(this.kafka_host, this.topic, this.searchStr, this.timeShift_mins);        // 记录请求数据(会在 JMeter 的“查看结果树”中显示)        sr.setSamplerData("prepare get message from \nhost: " + this.kafka_host +                           ".\ntopic: " + this.topic +                           ".\nsearchStr: " + this.searchStr +                           ".\ntimeBefore: " + this.timeShift_mins);        try {            String res = null;            res = kr.recieve();   // 实际从 Kafka 拉取消息(推测内部已实现消费逻辑)            System.out.println("结果in jmeter返回:" + res.toString());   // 控制台输出,方便调试            // 判断返回的消息内容是否包含目标字符串            if (res.contains(this.searchStr)) {                // 采样成功                sr.setSuccessful(true);                sr.setResponseData(res, "utf-8");   // 设置响应数据            } else {                // 采样失败(例如消息未找到目标字符串)                sr.setSuccessful(false);                sr.setResponseData(res, "utf-8");            }        } catch (Exception e) {            e.printStackTrace();            sr.setSuccessful(false);            sr.setResponseData(e.toString(), "utf-8");        } finally {            // 标记采样结束(自动计算耗时)            sr.sampleEnd();        }        return sr;    }    // 以下 main 方法用于本地调试(已注释,可取消注释独立测试采样器逻辑)    /*    public static void main(String[] args) {        KafkaRecieverJmeter krj = new KafkaRecieverJmeter();        Arguments args1 = krj.getDefaultParameters();        JavaSamplerContext context = new JavaSamplerContext(args1);        krj.setupTest(context);        System.out.println(krj.runTest(context));    }    */}
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-04 06:31:18 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/707657.html
  2. 运行时间 : 0.313294s [ 吞吐率:3.19req/s ] 内存消耗:4,779.77kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=41d8ca04d1690ed882205d6dae5e8a08
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001008s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001604s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000747s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000687s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001355s ]
  6. SELECT * FROM `set` [ RunTime:0.000613s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001441s ]
  8. SELECT * FROM `article` WHERE `id` = 707657 LIMIT 1 [ RunTime:0.001079s ]
  9. UPDATE `article` SET `lasttime` = 1780525878 WHERE `id` = 707657 [ RunTime:0.041649s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.002201s ]
  11. SELECT * FROM `article` WHERE `id` < 707657 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.013974s ]
  12. SELECT * FROM `article` WHERE `id` > 707657 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.034926s ]
  13. SELECT * FROM `article` WHERE `id` < 707657 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002408s ]
  14. SELECT * FROM `article` WHERE `id` < 707657 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002047s ]
  15. SELECT * FROM `article` WHERE `id` < 707657 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007306s ]
0.319768s