2017-02-10 8 views
1

Я запускаю некоторые тесты JMeter для редактирования поля. Если я использую JMeter HTTP (S) Test Script Recorder, я могу получить точное представление страницы и исправлений, которые я сделал.JMeter - вам нужно отправить данные POST, но я хочу изменить только одно поле

Он создает запрос HTTP POST с параметром для каждого поля, флажок и выпадающий список на странице. Мне только очень важно изменить один из них.

Моя проблема заключается в том, что я не могу просто удалить все другие параметры из данных POST, потому что страница интерпретирует это так, как будто я удалил их все со страницы (а затем жалуется, что отсутствуют данные). Поэтому я остался с попыткой получить текущие значения для оставшихся редактируемых полей и флажков, чтобы я мог повторно отправить их, когда я хочу изменить только одно поле.

Например, представьте, что я представляю некоторые пользовательские данные с полями для имени, адреса электронной почты и адреса. Я хочу изменить имя, добавив 1 к концу и оставшиеся два поля, как они есть.

Мои мысли для достижения этого:

1) Использование XPath, чтобы попытаться получить значения, указанные на странице, хранить их в переменных и повторно представить их в запросе на пост. Это грязно, а также очень сложно, поскольку страница отображается во всплывающем окне, что добавляет сложности.

2) Запросите базу данных для всей информации и повторно отправьте ее. Похоже, много накладных расходов, а также данные не доступны свободно. Я бы предпочел не пытаться это сделать.

3) Используйте другой элемент JMeter. Я не знаю, как получить данные конкретного элемента со страницы. Может быть, какой-то слушатель я еще не понял? Если бы я мог вытащить параметры со страницы и сохранить их, это было бы очень удобно.

4) Как-то отправить запрос POST только с одним полем, указав, что я не хочу очищать оставшиеся поля, я просто хочу оставить их в покое. Я буду свободно признавать, что я не очень хорошо знаком с веб-приложениями, поэтому может быть очень очевидная причина того, почему это невозможно сделать (или это зависит от того, как он обрабатывается контентом приложения).

Мысли?

ответ

0

Из всего сообщения я понимаю, что вы хотите параметризовать поле, где каждый раз будет передано различное значение.

Если мое понимание верное, ответ лежит в CSV Dataset Config, где вы можете передать значения из файла CSV.

Из вашего примера:

Для примера, представьте себе, я представления некоторых пользовательских данных с полями для имя, электронная почта и адрес. Я хочу изменить имя, добавив 1 к конец и оставить другие два поля, как они

Для достижения этой цели:

Шаги к следующим образом:

  1. Создать файл csv.заполните следующие имена: names name1 name2 name3 name4
  2. names - это заголовок столбца и остальные значения.
  3. Добавить CSV Dataset Config в свой План тестирования.
  4. Укажите путь к файлу.
  5. заменить значение в поле имени в HTTP Post запрос как ${names}. это оно.
+0

К сожалению, я не знаю значений раньше времени. Мне нужно загрузить страницу, получить все значения, которые уже существуют на странице, изменить один из них и повторно отправить их все. – Jer

+0

Затем вы просто коррелируете значения, используя «Регулятор регулярных выражений», который позволяет вам применить регулярное выражение к ответу и привязать требуемое значение к переменной (например, id), поэтому позже вы можете использовать имя переменной, чтобы подставить значение везде, где оно был отправлен. Пожалуйста, найдите Google для Jmeter Correlation, вы найдете много ссылок для выполнения. –

+0

Звучит неплохо и, вероятно, будет работать в большинстве случаев. К сожалению, в моей настройке данные, которые существуют в этих полях, не являются текстовыми. Это настройка, в которой вы начинаете вводить текст, и он предоставляет список вариантов, основанных на вашем вводе. Когда вы нажимаете один, он превращается в своего рода кнопку. Внутри HTML есть просто « ", false) });