Тестирование функциональности загрузочного документа с JMeter - PullRequest
1 голос
/ 08 ноября 2011

Я тестирую сервис, который имеет функцию «загрузить документ».Мне нужно отправить уникальный документ с каждым запросом.В меню конфигурации сэмплера HTTP-запроса я вижу, что могу отправить документ вместе со своим запросом.Тем не менее, я понятия не имею, как я собираюсь отправлять разные документы с каждым запросом.Есть ли способ заставить JMeter немного изменить документ, сгенерировать указанный документ или даже выбрать серию сгенерированных извне документов для отправки с запросом?

1 Ответ

4 голосов
/ 08 ноября 2011

Вы можете использовать конфигурацию набора данных CSV в разделе Пока контроллер, чтобы читать и отправлять предварительно созданные имена тестовых документов в цикле.

Это будет выглядеть так:

  1. создать коллекцию различных тестовых документов для отправки по вашему запросу;
    ДОПОЛНИТЕЛЬНО: сохранить путь к папке с созданными документами в качестве переменной jmeter - использовать в скрипте;
  2. создать список тестовых документов;
    Вы можете сделать это в BeanShell Sampler с кодом, показанным ниже;
  3. добавить Пока контроллер для отправки тестовых документов в цикле;
    Конфигурация набора данных CSV для Пока контроллер как дочерний - для чтения имен тестовых документов из списка.

Подробно:

BeanShell Sampler

${__javaScript("${testFile}"!="<EOF>",)} - прочитать список до конца файла While Controller

CSV Data Set Config

HTTP Request

BeanShell Sampler-код для генерации списка тестовых файлов:

import java.text.*;
import java.io.*;
import java.util.*;

String [] params = Parameters.split(",");

String contentList = params[0];
String testDataDir = params[1];

File dir = new File(System.getProperty("user.dir") + File.separator + testDataDir);
BufferedWriter out = null;

try {

    if (!dir.exists()) {
        throw new Exception ("Directory " + dir.getName() + " not found.");
    }

    File contentFile = new File(System.getProperty("user.dir") + File.separator + contentList);

    if (contentFile.exists()) {
        contentFile.delete();
    }

    FileWriter fw = new FileWriter(contentFile, true);
    out = new BufferedWriter(fw);

    System.out.println("\n--------------------------------------------------------------------------------------");
    System.out.println("CONTENT LIST:\n");

    if ((dir.exists()) && (dir.listFiles() != null) && (out != null)) {
        for (File f : dir.listFiles()) {
            if (contentFile.length() == 0) {
                out.write(f.getName());
            } else {
                out.write("\n" + f.getName());
            }

            out.flush();

            System.out.println("Content " + f.getName() + " added to " + contentFile.getName() + ".");
        }
    }

    System.out.println("--------------------------------------------------------------------------------------\n");
}
catch (Exception ex) {
    IsSuccess = false;
    log.error(ex.getMessage());
    System.err.println(ex.getMessage());
}
catch (Throwable thex) {
    System.err.println(thex.getMessage());
}
finally {
    out.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...