Как сохранить новые строки и пробелы в параметрах Jmeter - PullRequest
0 голосов
/ 20 июня 2020

введите описание изображения здесь Привет, мне нужно добавить фрагмент кода в мои параметры Jmeter для моего запроса следующим образом:

#include <string>
#include <vector>
#include <iostream>

using namespace std; 

int main() 
{ 
//use cin to get console input 
string test;
getline(cin,test);

vector<char> newstr;
for (int i = 0; i< test.size();i++)
{
char c = test[i];
if ((c>='a'&& c <='z') || (c>='A'&& c <='Z'))
{
    //cout<<"c: "<<c<<endl;
    newstr.push_back(tolower(c));
}
}

if (newstr.size()==0)
{
    cout<<"YES"<<endl;
        return 0;
    }
for (int i = 0; i< newstr.size()/2;i++)
{
char a = newstr[i];
char b = newstr[newstr.size()-1-i];
if (a != b)
{
    //cout<<newstr[i]<<endl;
    cout<<"NO"<<endl;
    return 0;
}

}
cout<<"YES"<<endl; 

//use cout to print console output 

return 0; 
}

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

#include <string> #include <vector> #include <iostream>  using namespace std;   int main()  {  //use cin to get console input  string test; getline(cin,test);  vector<char> newstr; for (int i = 0; i< test.size();i++) { char c = test[i]; if ((c>='a'&& c <='z') || (c>='A'&& c <='Z')) {    //cout<<"c: "<<c<<endl;     newstr.push_back(tolower(c)); } }  if (newstr.size()==0) {  cout<<"YES"<<endl;      return 0;   } for (int i = 0; i< newstr.size()/2;i++) { char a = newstr[i]; char b = newstr[newstr.size()-1-i]; if (a != b) {   //cout<<newstr[i]<<endl;    cout<<"NO"<<endl;   return 0; }  } cout<<"YES"<<endl;   //use cout to print console output   return 0;  } 

и никогда не выполняет код.

Кроме того, код отлично работает в почтальоне, поскольку он принимает пробелы и символы новой строки ..

Я пробовал использовать escape-последовательность, но у меня это не работает . Есть ли выход?

Параметры следующие:

requestid:2
store:${hdn_store}
txtsol: #include <string>
#include <vector>
#include <iostream>

using namespace std; 

int main() 
{ 
//use cin to get console input 
string test;
getline(cin,test);

vector<char> newstr;
for (int i = 0; i< test.size();i++)
{
char c = test[i];
if ((c>='a'&& c <='z') || (c>='A'&& c <='Z'))
{
    //cout<<"c: "<<c<<endl;
    newstr.push_back(tolower(c));
}
}

if (newstr.size()==0)
{
    cout<<"YES"<<endl;
        return 0;
    }
for (int i = 0; i< newstr.size()/2;i++)
{
char a = newstr[i];
char b = newstr[newstr.size()-1-i];
if (a != b)
{
    //cout<<newstr[i]<<endl;
    cout<<"NO"<<endl;
    return 0;
}

}
cout<<"YES"<<endl; 

//use cout to print console output 

return 0; 
}

langcode:1

1 Ответ

0 голосов
/ 23 июня 2020

Существуют разные подходы, например:

  1. Сохраните свой код в файл и используйте функцию __ FileToString () для чтения его из файловой системы

  2. Преобразуйте код в формат Base64 , это приведет к одной строке, например:

    I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgCgppbnQgbWFpbigpIAp7IAovL3VzZSBjaW4gdG8gZ2V0IGNvbnNvbGUgaW5wdXQgCnN0cmluZyB0ZXN0OwpnZXRsaW5lKGNpbix0ZXN0KTsKCnZlY3RvcjxjaGFyPiBuZXdzdHI7CmZvciAoaW50IGkgPSAwOyBpPCB0ZXN0LnNpemUoKTtpKyspCnsKY2hhciBjID0gdGVzdFtpXTsKaWYgKChjPj0nYScmJiBjIDw9J3onKSB8fCAoYz49J0EnJiYgYyA8PSdaJykpCnsKICAgIC8vY291dDw8ImM6ICI8PGM8PGVuZGw7CiAgICBuZXdzdHIucHVzaF9iYWNrKHRvbG93ZXIoYykpOwp9Cn0KCmlmIChuZXdzdHIuc2l6ZSgpPT0wKQp7CiAgICBjb3V0PDwiWUVTIjw8ZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KZm9yIChpbnQgaSA9IDA7IGk8IG5ld3N0ci5zaXplKCkvMjtpKyspCnsKY2hhciBhID0gbmV3c3RyW2ldOwpjaGFyIGIgPSBuZXdzdHJbbmV3c3RyLnNpemUoKS0xLWldOwppZiAoYSAhPSBiKQp7CiAgICAvL2NvdXQ8PG5ld3N0cltpXTw8ZW5kbDsKICAgIGNvdXQ8PCJOTyI8PGVuZGw7CiAgICByZXR1cm4gMDsKfQoKfQpjb3V0PDwiWUVTIjw8ZW5kbDsgCgovL3VzZSBjb3V0IHRvIHByaW50IGNvbnNvbGUgb3V0cHV0IAoKcmV0dXJuIDA7IAp9
    

и используйте __ base64Decode () функция для преобразования его обратно в разделе параметров сэмплера HTTP-запроса

Ознакомьтесь с Apache Функции JMeter - Введение статью, чтобы узнать больше о концепции функций JMeter

...