为什么 Sikulix 代码在 JMeter 中不起作用

Why does Sikulix code not working in JMeter

我在 JMeter 中的以下 Sikuli 代码无法正常工作。

import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
import org.sikuli.script.FindFailed;
import org.sikuli.script.KeyModifier;
import org.sikuli.script.Match;


Screen screen = new Screen();
Pattern VNCviewer = new Pattern ("C:\scripts\patterns\vnc\vncviewer.png");
screen.wait(VNCviewer,3);

我在 Beanshell 采样器和 JSR223 采样器中都试过了,但在这两种情况下都不起作用。这是我收到的错误。

JSR223 采样器

Response code: 500

响应消息:javax.script.ScriptException: javax.script.ScriptException: FindFailed: C:\scripts\patterns\vnc\vncviewer.png: (32x31) in R[0,0 1920x1080]@S(0) 第 2226 行,在文件 Region.java

Beanshell 采样器

Response code: 500

响应消息:org.apache.jorphan.util.JMeterException:调用 bsh 方法时出错:eval 来源文件:内联评估:``import org.sikuli.script.Pattern;导入 org.sikuli.script.Screen;导入 org.si 。 . . '' : 方法调用 screen.wait

此代码在另一台笔记本电脑和相同版本的 JMeter (5.0) 中运行良好。我也尝试了不同的 java 版本。仅文件路径正确且png文件存在

该错误意味着 Sikuli 无法在屏幕上找到与您的 vncviewer.png 图片匹配的元素。

仔细检查 vncviewer.png 的内容是否显示在屏幕上。也可能是您在具有不同屏幕分辨率的不同机器上截取了屏幕截图,因此查找失败。

您可以尝试以下方法:

  1. 在您使用 运行 JMeter 的机器上重新捕获屏幕截图,并将 vncviewer.png 替换为来自特定机器

    的“新鲜”图像
  2. 调用 Pattern.similar() 函数以获得更大的灵活性,这样 Sikuli 就会寻找“相似”的图像,而不是“精确”的图像

  3. Enable debug logging for Sikuli by adding the following system property to JMeter command line:

    jmeter -Dsikuli.Debug=0 -t /path/to/your/testplan.jmx