首页 > 解决方案 > Jmeter 和 MemCached 设置和获取

问题描述

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

如果这可能是错误的选择,现在将我指向一个不同的应用程序;但我的理解是 Jmeter 应该允许我用等效的 Set 和 Get 请求来冲击服务器。

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

我按照这些说明尝试设置 TCP 采样器并设置“要发送的文本”字段,如下所示;在执行有关预编译器的链接中的附加步骤之后。

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 符合预期。有没有一种好方法可以在无头中调试某些东西设置?

谢谢你的时间。

标签: javajmetermemcached

解决方案


我相信最简单的方法是使用Memcached Java 客户端库

  1. 下载spymemcached-2.12.3.jar并将其放入 JMeter 安装的“lib”文件夹(或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给钥匙写tutorialspoint15 分钟
    • client.get('tutorialspoint')- 读取tutorialspoint键的值
    • client.shutdown()- 断开连接

有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - 为什么以及如何使用它

演示:

在此处输入图像描述


推荐阅读