LoadRunner字符串处理 - 补齐字符串

时间:2024-11-16 15:07:25

有些时候需要在某个字符串的前面用0补齐,以便满足长度的格式要求。

在LoadRunner中可以封装出一个函数来处理这种问题:

/*

Function to pad a string to x characters adding the required character at the start of the string

(Note string length limited by length of the array)

Author: Steven Woodcock, Sopra Group

Inputs:

strCharToPad - The String that requires to be padded out i.e. "123456"

cParamName - The name of the parameter you want the end value to be saved to

iValLength - The length you want the string to be padded out to i.e. 9

cValueToAdd - The character you want to pad the string out with, must be a single character i.e. "0"

Outputs:

Creates a LoadRunner parameter of a name specified in the input 'cParamName'

*/

int lr_padstr(char* cCharToPad, char* cParamName, int iValLength, char* cValueToAdd){

char cTemp[1024] = "";

int iLoop = 0;

int iMainLoop = 0;

int iSubLoop = 0;

for(iMainLoop = 0; iMainLoop < iValLength; iMainLoop++){

if (iMainLoop == strlen(cCharToPad)) {

iLoop = iValLength - iMainLoop;

for (iSubLoop = 0; iSubLoop < iLoop; iSubLoop++) {

strcat(cTemp, cValueToAdd);

}

}

}

strcat(cTemp, cCharToPad);

lr_save_string(cTemp, cParamName);

}

lr_padstr可以在指定字符串前补齐指定长度的某个字符,然后把修改后的字符串存入LoadRunner参数中。把以上代码放到lr_padstr.h头文件中,在LoadRunner脚本中引用:

#include "lr_padstr.h"

Action()

{

//     For the lr_padstr function

char * cShortValue = "123";

//     For the sprintf function

char cPaddedValue[8] ="";

int iShortValue = 123;

int i;

//     The lr_padstr function, written by Steven Woodcock can be used to pad with zeroes

lr_padstr(cShortValue,"pPaddedParameter",8,"0");

lr_output_message("Padded value is %s", lr_eval_string("{pPaddedParameter}"));

//     The PadToX function can also be used to pad with other characters (e.g. x)

lr_padstr(cShortValue,"pPaddedParameter",8,"x");

lr_output_message("Padded value is %s", lr_eval_string("{pPaddedParameter}"));

return 0;

}

参考:

http://www.bish.co.uk/~richardmjbishop/index.php?option=com_content&view=article&id=85%3Asample-loadrunner-script-pad-a-string-with-leading-zeroes&catid=34%3Arecent&Itemid=1