【发布时间】:2020-09-30 20:15:09
【问题描述】:
我有一个带有 JSR223 预处理器的线程组,它遍历对象的唯一 ID 并对该对象资源发出请求。我正在尝试解决所有可能以百万计的对象。为了克服最大线程限制,每个线程寻址特定对象集并循环通过该对象集。整个线程组运行特定的时间段。这是预处理器 groovy 脚本。
// get unique object Id for the thread request
int numThreads = Integer.parseInt(args[0]);
int totalObjects = Integer.parseInt(args[1]);
int objectsPerThread = totalObjects/numThreads;
int initialObjectsCount = (ctx.getThreadNum()) * objectsPerThread;
int objectId = initialObjectsCount + (ctx.getVariables().getIteration()) % objectsPerThread;
vars.put("uniqueId", Integer.toString(objectId));
将此脚本直接粘贴到 GUI 中时一切正常。 JMeter 客户端能够轻松地使服务器饱和。我想在多个地方使用这个脚本并将其提取到一个文件中,以便在 JMX 文件之间共享。当我这样做并在 JSR223 中指定脚本的文件名时,JMeter 客户端无法以与将此脚本粘贴到 GUI 时相同的效率执行。 Cache compiled script if available 选项在这两种情况下都会被选中。
- 这是预期的吗?
- 是否有更好的方法来共享脚本,例如使用测试片段,假设预处理器可以用作测试片段。
【问题讨论】: