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