C++ генерации кода повторяющегося объекта

Трудно ответить, почему ваш сценарий всегда извлекает значение 1, пока мы не узнаем, что является возвращенным ответом и как ваши Regex Extractor ведут себя на этом ответе. Также лучше использовать Groovy в более новых версиях JMeter вместо BeanShell.

В качестве примера, чтобы помочь вам, я разместил ниже использование Regex Extractor и Beanshell Preprocessor для одного из моих старых проектов, который извлекает значения cookie & CSRF из ответа предыдущего запроса и переходит к следующему просьба.

HTTP-ответ:

{"responseMessage":{"messageObjects":[{"Authorization":"Bearer eyJhbGcxxxxxxxxxx.hsagdshvvdcwfdhwegdwdvbsqmshljkdhlqwkvnAJHFDBVGHWFHJDWBMNEHDJBSMNWBWJLHDKLJWHKJHDHWFVWDJGJKEWWBDNXVWGHDFWJHXKLBSNXVWFXWJEHXKWBXWDVXHGHWCDGXWDXCB0YXNrdcbwdgwegvcbwdvxbscxwfdvcwehgdwebwbvdcwdgckkhecdADGGHWFCVWBDVCGWCWVXNBSVXKWHCWVCBWCJWFGHECWECwgdhwvcwehhebdmnwwjhgnwvdcnbvwgvcwrehcwefnwecwghkevwe.abcdefghijklmnopqrst-poushfgabjwgjhwdvvttrudyqgd-CSGQGBkjgdjwhged","csrfToken":"adganm7ik39i6oclabce54154","ConnectedIP":"127.0.0.1","lastLoginIp":"null"}],"messageString":""},"responseStatus":200}

Извлечение регулярных выражений (имя используемой переменной - «authcsrfkey»)

{"responseMessage":{"messageObjects":\[{"Authorization":(.+?),"csrfToken":"(.+?)"

BeanShell PostProcessor (так как мне нужно объединить два извлеченных значения. Этот постпроцессор находится сразу после экстрактора Regex)

String authkey=vars.get("authcsrfkey_g1");
String csrf=vars.get("authcsrfkey_g2");
String cookie="Authorization=" + authkey + "; csrfToken=" + csrf;
vars.put("cookie",cookie);

[ 1121] BeanShell PreProcessor (будет добавлен в заголовок последующего запроса)

import org.apache.jmeter.protocol.http.control.Header;
sampler.getHeaderManager().add(new Header("Cookie",vars.get("cookie")));
5
задан Jeffrey Hantin 18 November 2010 в 06:37
поделиться

4 ответа

Можно демонтировать двоичные файлы и выполнить md5 на выводе

Пример на MacOSX

otool -tV a.out | md5
ee2e724434a89fce96aa6b48621f7220

Но, каждый пропускает глобальные данные... (мог бы быть параметр для включения также),

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

3
ответ дан 14 December 2019 в 04:48
поделиться

Я подозреваю, что это будет в большой степени зависеть от Вашего набора инструментальных средств и ОС. Например, если один из исполняемых заголовков содержит метку времени затем, Вы всегда собираетесь найти, что получающийся MD5 отличается.

Что является конечным результатом, которого Вы пытаетесь достигнуть (т.е. почему это столь важный, что они идентичны)..?

2
ответ дан 14 December 2019 в 04:48
поделиться

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

Может быть возможно заставить Вашу компиляцию делать идентичные двоичные файлы из того же источника - или это не может - это зависеть от компилятора. Большинство встроит текущее время в сгенерированный двоичный файл где-нибудь.

1
ответ дан 14 December 2019 в 04:48
поделиться

Вы не можете сделать md5 сравнения контрольной суммы для Visual Studio. Для нормальной Версии выпуска .exe файл из Visual Studio будет 3 места, которые изменяются с каждым, перекомпилировали. 2 из них являются метками времени, и третьим является уникальный GUID, что использование Visual Studio для соответствия версиям .exe с файлами помощника для обеспечения они находятся в синхронизации.

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

Кроме того, при вызове какого-либо .dlls если я вспомню право, Вы получите более уникальные идентификаторы в сгенерированном файле.

Отладочная версия является другой историей. Я думаю, что существуют многие, намного больше различий.

2
ответ дан 14 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: