Jmeter文件比较

b1uwtaje  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(178)

我是jmeter的新手&我正在寻找一个使用Jmeter比较两个文件的选项。这两个文件都是使用jmeter中的Save Response to file生成的。另外,这两个文件都包含对jdbc请求的响应,我在我的响应Assert中使用了__FileToString()函数来比较两个文件。但是如果我的文件中有一些特殊字符的数据,这将失败。我该如何处理这个问题?或者有没有其他方法来比较两个Jmeter创建的文件?我还想知道两个文件中不同的记录。我知道可以使用很多其他工具来比较文件,但是我真的想使用Jmeter来比较。谢谢!

3phpmpom

3phpmpom1#

您可以使用JSR223采样器和Groovy 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.setSuccessful(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())
   }
}

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

这并不是说这不一定适用于所有类型的文件,例如,二进制文件。
参考文献:

相关问题