【问题标题】:Jmeter-file compareJmeter-文件比较
【发布时间】:2017-07-14 11:29:28
【问题描述】:

我是 jmeter 的新手,我正在寻找使用 Jmeter 比较两个文件的选项。这两个文件都是在 jmeter 中使用 Save Response to file 生成的。此外,这两个文件都包含对 jdbc 请求的响应,其中包含跨多列和多行的 100 个值。我在响应断言中使用__FileToString() 函数来比较这两个文件。但是,如果我的文件包含带有一些特殊字符的数据,这将失败。任何提示我该如何处理?或任何其他方法来比较两个 Jmeter 创建的文件?我还想知道两个文件中不同的记录。 我知道可以使用许多其他工具比较文件,但我真的很想使用 Jmeter 来做这件事。谢谢!

【问题讨论】:

  • 您应该编辑以添加标签“jmeter”,以便关注该标签的用户看到您的帖子

标签: file jmeter compare


【解决方案1】:

例如,您可以使用JSR223 SamplerGroovy language 和类似代码:

def file1 = new File('/path/to/file1')
def file2 = new File('/path/to/file2')

def file1Lines = file1.readLines('UTF-8')
def file2Lines = file2.readLines('UTF-8')

if (file1Lines.size() != file2Lines.size()) {
   SampleResult.setSussessful(false)
   SampleResult.setResponseMessage('Files size is different, omitting line-by-line compare')
} else {
   def differences = new StringBuilder()

   file1Lines.eachWithIndex { String file1Line, int number ->
       String file2Line = file2Lines.get(number)
       if (!file1Line.equals(file2Line)) {
           differences.append('Difference # ').append(number).append('. Expected: ')
                   .append(file1Line).append('. Actual: ' + file2Line)
           differences.append(System.getProperty('line.separator'))
       }
   }

   if (differences.toString().length() > 0) {
       SampleResult.setSuccessful(false)
       SampleResult.setResponseMessage(differences.toString())
   }
}

如果有任何差异,采样器将失败,您将在“响应消息”部分看到有关“增量”的信息:

参考资料:

【讨论】:

  • 感谢 Dmitri 的回复,但此代码给出以下错误 - groovy.lang.MissingMethodException: No signature of method: static org.apache.jmeter.samplers.SampleResult.setSussessful() 适用于参数类型:(java.lang.Boolean) 值:[false] 可能的解决方案:setSuccessful(boolean)。试图找到原因,但无法得到任何东西。你能帮我吗 ?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2021-02-16
相关资源
最近更新 更多