java - 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 符合预期。有没有一种好方法可以在无头中调试某些东西设置?
谢谢你的时间。
解决方案
我相信最简单的方法是使用Memcached Java 客户端库
下载spymemcached-2.12.3.jar并将其放入 JMeter 安装的“lib”文件夹(或JMeter Classpath中的任何其他位置)
重新启动 JMeter 以拾取 .jar
将JSR223 Sampler添加到您的测试计划并使用以下代码片段:
def client = new net.spy.memcached.MemcachedClient(new InetSocketAddress('your-memcached-host', your-memcached-port))
- 用于连接服务器client.set('tutorialspoint', 900, 'memcached').done
memcached
给钥匙写tutorialspoint
15 分钟client.get('tutorialspoint')
- 读取tutorialspoint
键的值client.shutdown()
- 断开连接
有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - 为什么以及如何使用它
演示:
推荐阅读
- python - 使用 sklearn.LinearRegression() 时是否有基于 y 值预测 x (x-ose) 值的函数?
- unity3d - OnTriggerEnter2D 和 OnTriggerExit2D 调用了多个时间
- java - 似乎无法将 javaFX JDK 添加到我的项目中
- python - 从文件中删除行,然后保存/覆盖原始文件
- python - 为什么 else 子句会引发 SyntaxError
- c++ - SDL2:在 16 x 16 网格上平滑移动
- azure - 超时已过期 - 将数据从托管实例移动到 DataWarehouse AZure 数据工厂
- notepad++ - 查找和修改文本
- python - 如何传输 pygobject3 以与 PyCharm 一起使用
- airflow - 气流信号 SIGTERM