如何使用JMeter读取和检查外部服务器上文件的内容?

时间:2019-03-12 11:59:51

标签: groovy ssh jmeter beanshell

很抱歉,如果这是一个非常基本的问题,但是我对JMeter还是陌生的,并且在跨多服务器工作的基础知识方面经验不足。

我想做的是以下几点: 假设我的JMeter linux服务器为1.2.3.44,而我要读取的文件位于服务器1.2.3.55中。另外,我有一台服务器1.2.3.66,这是一台Windows服务器,上面还装有JMeter,最好是如果可能的话,我希望从这台服务器运行脚本(因为我可以避免将我的脚本SCP-ing到没有GUI的另一台服务器上每次调整后)。

因此,我的系统将消息放在1.2.3.55的目录中。我有以下变量;

  

dirpath:/ tmp / dir / dir /

     

文件路径:$ {filename} .txt

     

completepath:$ {dirpath} $ {filepath}

     

其他服务器:1.2.3.55

我想使用JMeter来查看该文件,并读取第一行(也是唯一的一行),并将其与我期望的进行比较。到目前为止,我所拥有的是BeanShell Sampler,通过执行以下操作,我可以在运行(.66)的JMeter脚本的同一服务器上读取文件:

BufferedReader fileReader = new BufferedReader(new FileReader(vars.get("completepath")));

int counter = 1;
content = fileReader.readLine();
while ((nextLine = fileReader.readLine()) != null)
{
    content = content + "\n" + nextLine;
    counter++;
}
vars.put("content", content);

x = vars.get("content");

但是,我无法弄清楚如何访问另一台服务器(.55)上的文件,以及在这种情况下文件路径应该是什么...

我以前在另一个测试用例中使用过OS Process Sampler来访问Linux服务器,在该服务器上我有一个bash脚本ssh到另一台服务器,并在该服务器上运行另一个bash脚本,该脚本会将一些文件放置在目录中。但是,我不知道如何执行该操作,并且实际上还读取该文件的内容。我是否应该再看一下bash脚本(我对此真的不太了解)?还是有一种方法可以在JMeter中做到这一点呢?

我可以为变量completepath做些什么:1.2.3.55/tmp/dir/dir/filename.txt?

0 个答案:

没有答案