LoadRunner脚本编写(6)— 数…
来源:互联网 发布:农村淘宝快递单号查询 编辑:程序博客网 时间:2024/05/16 05:45
一,数据类型转换
没有使用过C编程的LoadRunner脚本编写者会发现在数据类型转化方面比较困难。下面介绍这方面的知识。
1.
象很多C函数一样,使用atoi函数的结果即为返回值
如intResult = atoi( charY );
而:itoa的返回结果为第二个参数。
itoa( intX, charY, 10);
数组的最大长度为32064(32K),否则会出现“too many variables”编译错误。
如果定义为变长的字符串如char *charY,则程序会出错。
2.
itoa不是一个标准的ANSI C函数但是是C的stdlib.h中的一个函数。所以它不被包括在unix机器上的LibC中。我们可以使用标准的sprintf函数来代替:
sprintf(charY,“%d”,intX);
3.
int intNum;
sscanf(“ffff”,“%X”,&Num);
lr_output_message(“%d”,intNum);
4.
如果第一个字符不是数字或者为空,atoi返回0,即“e24”会返回0
atoi转换一个非数字的字符会返回组成这个字符的数字,如“-3.2”返回-3.0。“123XXX345”返回123。
5.
sprintf( intX, "%d", lr_eval_string("{pX}"));
6.
LoadRunner没有提供对参数的算术运算的函数。所以LR的参数必须:
1)
2)
3)
char cBuf[10];
int i;
// 1. Evaluate parameter into a Cinteger:
i = atoi( lr_eval_string("{pNum_in}"));
// 2. Do the math and output the result to a Cstring:
sprintf( cBuf, "%d", i+1);
// 3. Save the string as a parameter to be passedon:
lr_save_string( cBuf, "pNum_out");
//Print out the parameter value after incrementingit.
lr_message("**** Parameter from %s to%s",
zibeike注:除了对于数字类型的参数的运算之外,对于文本形式的参数的操作,可以参考我的另一篇文章的内容:http://www.51testing.com/?34866/action_viewspace_itemid_75592.html
二.字符串操作
在C语言中,字符串是固定长度的,因为他们本身由独立的字符组成的字符数组。数组是只读的。任何修改字符串长度的函数调用都会报错:
Error: "C interpreter runtime error - memoryviolation error during replay.
在LoadRunner的as_web.h库中的字符串函数可以使用“prototyping”声明的方式读写内存:
char *strtok(char *, char *); // tokenizer prototype
char *strstr(char *, char *); // substring prototype
char *strdup(char *); // String duplication prototype
float atof(); // alpha to return float datatype
#include "as_web.h"
char *strtok(char *, char *); // prototype function call.
ActionX()
{
char aBuffer[256]; // input string to be parsed.
char *cToken; // individual token from strtok.
char cSeparator[] = " "; // blank separator.
int i; // incrementer
char val[3][20]; // output array of strings.
char modified_val[20];
// Create a parameter named pDate:
lr_save_string("January 2, 2001", "pDate");
// Put parameter into a string buffer:
strcpy( aBuffer,lr_eval_string("{pDate}"));
// Show the buffer for debugging:
lr_output_message("%s\n",aBuffer);
// get first word (to the first blank):
cToken = strtok( aBuffer,cSeparator);
i = 1;
if(!token) { // first token was not found:
lr_output_message("No tokens found in string!");
return( -1 );
} else {
while( cToken != NULL) { // tokens are not NULL:
lr_output_message("Token=%s", cToken);
// Stuff in another array:
strcpy( val[i], cToken );
// Get next token:
cToken =strtok( NULL, cSeparator);
i++; // increment
}
lr_output_message("Val #1 is: %s", val[1]);
lr_output_message("Val #2 is: %s", val[2]);
lr_output_message("Val #2 is: %s", val[3]);
strncpy( modified_val, val[2], 1 );
modified_val[2] = '\0';
while (modified_val[2] != NULL) {
lr_output_message("===>%s", modified_val);
modified_val[2] = strtok(NULL, " ");
}
}
return 0;
}
strcat连接两个字符串
strchr返回指向第一个要查找的字符出现的位置的指针
strcmp比较两个字符
strcpy复制字符串到另一个
stricmp执行一个大小写敏感的比较
其他还有strdup,strncat,strncpy,strnicmp,strrchr,strset,strspn,strstr等字符串操作的函数。
- LoadRunner脚本编写(6)— 数…
- LoadRunner脚本编写<一>-- 检查点…
- LoadRunner脚本编写<二>-- 数据类…
- LoadRunner脚本编写(4)
- LoadRunner脚本编写(6)— 数据类型转换和字符串操作
- LoadRunner脚本编写(5)-- 检查点
- loadrunner脚本编写(转载至虫师博客)
- LoadRunner脚本编写教程
- Loadrunner脚本编写
- loadrunner脚本编写(2)
- loadrunner编写脚本
- LoadRunner脚本编写之一
- LoadRunner脚本编写之一
- loadrunner脚本编写二
- LoadRunner脚本编写之一
- loadrunner编写脚本
- LoadRunner脚本编写之一
- LoadRunner脚本编写
- 玩转LVS,快速实现负载均衡
- 完整构建LNMP,简单优化实现超高并…
- 英文面试
- 日常简单口语汇总
- 要做好性能测试,该掌握些什么?(…
- LoadRunner脚本编写(6)— 数…
- 性能调优攻略
- 数据处理-----MySql
- 网络七层协议的形象说明
- 利用LoadRunner进行http接口功能自…
- 异常结构图、编译期异常和运行期异常的区别
- 路由器六大测试详解
- Modbus 简单介绍
- 性能测试兵法