有些时候需要在某个字符串的前面用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;
}
参考: