2017-07-14 180 views
0

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

+0

您应该编辑添加标签“JMeter的”,所以下面的标签的用户将看到您的帖子 – jhhoff02

回答

0

可以使用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()) 
    } 
} 

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

Groovy compare 2 files

参考文献:

+0

谢谢德米特里你的回应,但是这个代码如下给予错误 - groovy.lang.MissingMethodException:没有方法的签名:static org.apache.jmeter.samplers.SampleResult.setSussessful()适用于参数类型:(java.lang.Boolean)values:[false] 可能的解决方案:setSuccessful (布尔)。试图找到原因,但没有得到任何东西。你能帮我吗 ?谢谢! – Preeti