2017-07-14 1 views
0

Je suis nouveau à jmeter & Je suis à la recherche d'une option pour comparer deux fichiers en utilisant Jmeter. Les deux fichiers sont générés en utilisant Save Response to file dans jmeter. Les deux fichiers contiennent également une réponse à une requête jdbc, avec 100s de valeurs sur plusieurs colonnes & lignes. J'utilise la fonction __FileToString() dans mon assertion de réponse pour comparer les deux fichiers. Mais cela échoue si mon fichier contient des données avec des caractères spéciaux. Des conseils comment pourrais-je gérer cela? OU tout autre moyen de comparer deux fichiers créés par Jmeter? Je voudrais également connaître les enregistrements qui sont différents dans les deux fichiers. Je sais que les fichiers peuvent être comparés en utilisant beaucoup d'autres outils, mais je voudrais vraiment faire cela en utilisant Jmeter s'il vous plaît. Je vous remercie!Jmeter-fichier comparer

+0

Vous devez modifier pour ajouter le tag « jmeter » afin que les utilisateurs suivants l'étiquette verront votre message – jhhoff02

Répondre

0

Vous pouvez le faire par exemple en utilisant JSR223 Sampler, Groovy language et code comme:

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()) 
    } 
} 

En cas de différences l'échantillonneur sera échoué et vous verrez les informations sur « deltas » dans le « Message de réponse "section:

Groovy compare 2 files

Références:

+0

Merci Dmitri pour votre réponse, mais ce code donne ci-dessous error - groovy.lang.MissingMethodException: Aucune signature de méthode: static org.apache.jmeter.samplers.SampleResult.setSussessful() est applicable pour les types d'argument: (java.lang.Boolean) valeurs: [false] Solutions possibles: setSuccessful (booléen). J'ai essayé de trouver la cause mais je n'ai rien pu obtenir. Pouvez-vous aider? Merci! – Preeti