Подробное руководство по решению проблемы искаженного контента на китайском языке, возвращаемого JMeter
Подробное руководство по решению проблемы искаженного контента на китайском языке, возвращаемого JMeter

Предисловие

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

Распространенные китайские искаженные проблемы

существовать JMeter При проведении эксплуатационных испытаний в Распространенных китайские искаженные Проблемы обычно проявляются в следующих аспектах:

  1. Искаженный код параметров запроса на китайском языке. Если отправленный запрос содержит параметры на китайском языке, параметры, полученные сервером, искажаются.
  2. Искаженные китайские символы в данных ответа. Если данные ответа, возвращаемые сервером, содержат китайские символы, JMeter отображает искаженные символы.
  3. CSV Искаженные китайские символы в файлах данных: используйте CSV Когда файл данных используется для параметризованного тестирования, содержание файла на китайском языке присутствует. JMeter выглядит как искаженные символы.

Решение

  1. настраивать JMeter изкодирование

Изменить файл конфигурации JMeter

JMeter Кодировка по умолчанию: ISO-8859-1,Доступно через Исправлять jmeter.properties файл конфигурации, чтобы установить кодировку по умолчанию UTF-8

  • Открыть JMeter в каталоге установки bin папка.
  • Найдите и отредактируйте jmeter.properties документ.
  • Найдите следующий элемент Конфигурация и раскомментируйте его (удалите предыдущий). #)инастраиватьдля UTF-8
Язык кода:bash
копировать
sampleresult.default.encoding=UTF-8
  • сохраните файл и перезапустите JMeter.

Установить кодировку для HTTP-запросов

существоватькаждый HTTP В запросе можно указать кодировку запроса и ответа, задав параметры.

  • Выберите образец HTTP-запроса.
  • существовать "параметр" раздел, добавьте новый параметр Content-Encoding,ценитьнастраиватьдля UTF-8
  • такой же,существовать «данные ответа» часть, убедитесь «Кодирование текста ответа» настраиватьдля UTF-8
  1. Конфигурацияпараметры запросакодирование

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

Пример кода

Язык кода:yaml
копировать
Test Plan
└── Thread Group
    └── HTTP Request
        ├── Server Name or IP: example.com
        ├── Path: /api/test
        ├── Parameters:
        │   ├── name: Значение параметра
        └── Content-Encoding: UTF-8
  1. иметь дело сданные ответакодирование

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

Используйте постпроцессор

Вы можете использовать постпроцессор BeanShell или постпроцессор JSR223 для обработки кодирования данных ответа.

Пример код (используйте JSR223 постпроцессор)

  1. существовать HTTP Добавить один образец по запросу JSR223 Постпроцессор.
  2. Выберите язык как groovy
  3. добавить Следующий код преобразует кодирование в данные ответа. UTF-8
Язык кода:bash
копировать
prev.setDataEncoding("UTF-8")
  1. иметь дело с CSV-файлом данных кодирования

при использовании CSV При выполнении параметризованного тестирования файлов данных убедитесь, что формат кодирования файла UTF-8,исуществовать JMeter настроен правильно.

Сохраните CSV-файл в кодировке UTF-8.

существоватьредактировать CSV файл, воспользуйтесь поддержкой UTF-8 Редактор закодированного текста (например. Notepad++、Sublime Текст), чтобы сохранить файл.

Настройка конфигурации набора данных CSV

  • добавить CSV Data Set Config элемент.
  • выбирать CSV Путь к файлу.
  • убеждаться “документкодирование” Поленастраиватьдля UTF-8
  1. Конфигурация эмуляция браузера кодирование

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

Пример код (используйте HTTP Header Manager)

  • существовать HTTP Добавить один образец по запросу HTTP Header Manager。
  • Добавьте следующую информацию заголовка:
Язык кода:yaml
копировать
Header Name: Content-Type
Header Value: application/x-www-form-urlencoded; charset=UTF-8

Практические примеры

Ниже приводится полное Практические примеры,показывает, каксуществовать JMeter Решите проблему искажения китайских символов в возвращаемом контенте.

Настройка среды

Предположим, у нас есть тестовая среда со следующим интерфейсом:

  • URL: http://example.com/api/test
  • Метод запроса: POST
  • Параметры запроса: имя, значение — китайские иероглифы (например, «тест»).
  • Ответ: формат JSON, включая поля на китайском языке.

Шаги настройки

  1. добавить вгруппа потоков:существоватьтеств планедобавитьгруппа потоков。
  2. добавить в HTTP Запрошенный образец: Запрошено Конфигурацией. URL-адреса, методы и параметры, а также настройки Content-Encoding для UTF-8
  3. добавить в HTTP Header Manager:добавить в Content-Type Информация в шапке, стоимость настройкидля application/x-www-form-urlencoded; charset=UTF-8
  4. добавить в JSR223 Заднее положение дело сустройство:настраиватьданные ответакодированиедля UTF-8

Пример конфигурации JMeter

Язык кода:yaml
копировать
Test Plan
└── Thread Group
    └── HTTP Request
        ├── Server Name or IP: example.com
        ├── Path: /api/test
        ├── Method: POST
        ├── Parameters:
        │   ├── name: тест
        ├── Content-Encoding: UTF-8
        └── HTTP Header Manager
            ├── Header Name: Content-Type
            └── Header Value: application/x-www-form-urlencoded; charset=UTF-8
        └── JSR223 PostProcessor
            ├── Language: groovy
            └── Script: prev.setDataEncoding("UTF-8")

Подвести итог

проходить本文из学习,Мы освоили существование JMeter Возвращены различные методы решения проблемы искаженного китайского контента. Эти методы не только повышают точность результатов испытаний, но и улучшают читаемость протоколов испытаний.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.