我正在测试一个安全服务( running on remote linux server ),它返回一个访问令牌 valid for 1 day .
我正在编写一个 JMeter 脚本来测试这个场景 . 以下是我要遵循的步骤:
-
向服务发出http令牌请求 .
-
收到访问令牌后,通过将其重新发送到安全服务来验证它是否是有效令牌 .
-
Change system date and increment it by 1 day so that the token becomes invalid .
-
一旦无效,请通过将其发送到安全服务再次验证它 .
我不知道如何执行第3步,如果可以通过JMeter首先执行 .
卡住 . 请建议 .
谢谢 .
2 回答
我建议做一个Linux date命令的Java ProcessBuilder.start() .
一个问题是您需要适当的权限才能更改系统日期 .
值得注意的是Linux
date
具有增加日期值的内置功能:How to increment a date in a bash script
生产环境 :
鉴于您需要处理 remote linux系统,您需要通过SSH通道以某种方式更改日期 . 所以我建议按如下方式进行:
下载JSch.jar文件(允许从Java代码进行SSH和SCP协议操作的Java库)并将其放到JMeter安装的/ lib文件夹中 . JMeter重启将需要选择.jar .
将Beanshell Sampler添加到您需要更改远程Linux系统时间的测试计划中
将以下代码放入Beanshell Sampler的“脚本”区域:
请参阅How to use BeanShell: JMeter's favorite built-in component以了解如何使用JMeter未提供所需测试元素的脚本来增强测试 .