Jmeter 和 MemCached 设置和获取

Jmeter and MemCached Sets and Gets

很抱歉,如果我问的问题微不足道,但我正在试验 Memcached 和 Jmeter。我有一个 Memcached 服务器设置(据我所知)并且能够通过 telnet IP PORT 向它发出 telnet 请求,另外设置和获取使用命令设置和获取适当。

如果这可能是错误的选择,请给我指出一个不同的应用程序;但我的理解是 Jmeter 应该允许我使用等效的 Set 和 Get 请求来访问服务器。

不幸的是实验平台是一个远程linux PC 运行ning Rockylinux,据我了解类似于CentOS / RedHat(我没有设置这部分) ;因此,我在 Linux PC 上没有可启动的 GUI。但是,我已经在 windows 上的本地 PC 上打开了 Jmeter,我明白我应该能够发送测试文件并 运行 它。

我按照 these instructions 尝试设置一个 TCP 采样器并设置“要发送的文本”字段,如下所示;在 link 中完成关于预编译器的附加步骤后。

set tutorialspoint 0 900 9${CR}${LF}
memcached${CR}${LF}
quit${CR}${LF}

运行 以上作为无头 jmeter 会话不会生成任何称为 [./jmeter -n -t "Sample.jmx" -l testresults.jtl"] 的错误,但是当我通过 telnet 连接我也没有看到键“tutorialspoint”的值得到更新。当手动执行获取和设置时,我看到更新。任何想法我可能做错了什么?检查日志表明 ResponseCode 200 OK 作为预期。是否有在 Headless 设置中调试某些内容的好方法?

感谢您的宝贵时间。

我认为最简单的方法是使用 Memcached Java Client library

  1. 下载spymemcached-2.12.3.jar and drop it to "lib" folder of your JMeter installation (or any other location in JMeter Classpath)

  2. 重新启动 JMeter 以拾取 .jar

  3. JSR223 Sampler 添加到您的测试计划并使用以下代码片段:

    • def client = new net.spy.memcached.MemcachedClient(new InetSocketAddress('your-memcached-host', your-memcached-port)) - 用于连接到服务器
    • client.set('tutorialspoint', 900, 'memcached').donememcached 写入 tutorialspoint 键 15 分钟
    • client.get('tutorialspoint') - 读取 tutorialspoint 键的值
    • client.shutdown() - 断开连接

有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It

演示: