- 浏览: 427164 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
iwwenbo:
别逗好不好
Popup.js 弹出窗口 -
bugnuke:
尼玛 跑不了。。。
Popup.js 弹出窗口 -
tangzhifei:
创建Subversion授权文件放哪目录下?前面我的都对了,到 ...
Trac系列(8):windows下Apache+SVN+Trac安装及配置(一) -
zoutuo1986:
正在安装,确实很慢,一定要选择网速快的时候安装,
eclipse 插件springide安装 -
johnsonyang:
this.jmsTemplate.send(
...
spring,weblogic配置jms
一,数据类型转换
没有使用过C编程的LoadRunner脚本编写者会发现在数据类型转化方面比较困难。下面介绍这方面的知识。
1. 相似函数的输出在不同的位置
象很多C函数一样,使用atoi函数的结果即为返回值
如intResult = atoi( charY );
而:itoa的返回结果为第二个参数。
itoa( intX, charY, 10);
第一个参数是需要转换的数字,第二个参数是转换后存储的字符数组,需要注意的是数组必须定义为固定的长度,如:char chary[20];
数组的最大长度为32064(32K),否则会出现“too many variables”编译错误。
如果定义为变长的字符串如char *charY,则程序会出错。
第三个参数不是数组的长度,而是数字的基数,10进制是最常用的,其他还有二进制,八进制,十六进制。
2. 有一些函数实现了同样的功能
itoa不是一个标准的ANSI C函数但是是C的stdlib.h中的一个函数。所以它不被包括在unix机器上的LibC中。我们可以使用标准的sprintf函数来代替:
sprintf(charY,“%d”,intX);
3. 是用%X来转换一个十六进制数
int intNum;
sscanf(“ffff”,“%X”,&Num);
lr_output_message(“%d”,intNum); // 打印65535 ,ffff的整数值
4. 从文本中提取数字的规则
如果第一个字符不是数字或者为空,atoi返回0,即“e24”会返回0
atoi 转换一个非数字的字符会返回组成这个字符的数字,如“-3.2”返回-3.0。“123XXX345”返回123。
5. LoadRunner脚本中的参数必须转换成C字符串。有两种方式来转化LR的参数为C语言的数字。
i = atoi( lr_eval_string("{pX}") );
sprintf( intX, "%d", lr_eval_string("{pX}") );
6. 参数的算术运算
LoadRunner没有提供对参数的算术运算的函数。所以LR的参数必须:
1) 转换成C的整数
2) 使用C的函数来运算最后返回一个C的字符串
3) 把返回的字符串保存成参数
char cBuf[10];
int i;
// 1. Evaluate parameter into a C integer:
i = atoi( lr_eval_string("{pNum_in}") );
// 2. Do the math and output the result to a C string:
sprintf( cBuf, "%d", i+1);
// 3. Save the string as a parameter to be passed on:
lr_save_string( cBuf, "pNum_out");
//Print out the parameter value after incrementing it.
lr_message("**** Parameter from %s to %s",
lr_eval_string("{pNum_in}"));
lr_eval_string("{pNum_out}"));
zibeike注:除了对于数字类型的参数的运算之外,对于文本形式的参数的操作,可以参考我的另一篇文章的内容:http://www.51testing.com/?34866/action_viewspace_itemid_75592.html
二.字符串操作
在C语言中,字符串是固定长度的,因为他们本身由独立的字符组成的字符数组。数组是只读的。任何修改字符串长度的函数调用都会报错:
Error: "C interpreter runtime error - memory violation 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等字符串操作的函数。
zibeike注:关于更多字符串操作的脚本编写,可以参考我的另一篇文章:
http://www.51testing.com/?34866/action_viewspace_itemid_75428.html
zibeike翻译自:http://www.wilsonmar.com/1lrscrīpt.htm
发表评论
-
Loadrunner关联
2008-09-28 16:40 3995Loadrunner关联(一)什么 ... -
LoadRunner监控器系列-How to set up the WebLogic monitor
2008-09-28 16:37 2757Installation Overview LoadRunne ... -
Loadrunner 测试sql语句性能
2008-09-28 11:05 6028本次通过loadrunner录制Sql ... -
如何在 LoadRunner 脚本中做关联 (Correlation)
2008-09-28 11:04 3044当录制脚本时,VuGen会 ... -
lr监视的性能计数器
2008-09-28 10:59 1760Memory: 内存使用情况可 ... -
十步完成Web应用程序压力测试
2008-09-28 10:55 1735Web 应用程序是决定网站 ... -
分析图表-中级测试师用
2008-09-28 10:52 1429在论坛混了多日,发现越来越多的性能测试工程师基本上都能够掌握利 ... -
LR性能分析图解释
2008-09-27 11:23 2367Transactions(用户事务分析)用户事务分析是站在用户 ... -
Loadrunner关于页面检查的几个函数详解
2008-09-27 11:07 3140环境:51Testing软件测试网/VDn_([Loadrun ... -
Loadrunner 日志参数的设置与使用
2008-09-27 11:05 2536转载请注明出处:http://www.51testing.co ... -
lR知识
2008-09-23 16:25 1321问题1:LoadRunner响应时间 ... -
性能瓶颈分析方法
2008-09-23 16:19 3311同一场景1.小用户量的情况下测试2.大用户量情况下的测试分析的 ... -
LoadRunner中HTTP协议的录制及两种录制模式的比较
2008-09-23 14:36 2032一,脚本编写 1, “HTML –base scrīpt”和 ... -
LoadRunner例子:检查点为参数的一个例子
2008-09-23 14:30 2682检查点是LoadRunner的一个功能,用来验证业务功能的正确 ... -
LoadRunner中字符串的操作
2008-09-23 14:29 2365LoadRunner中常用的字符串操作函数有: ... -
LoadRunner编程之文件的操作
2008-09-23 14:28 2024这篇文章主要写下LoadRunner下如何进行文件的操作。 1 ... -
LoadRunner关联函数的脚本实例--如何操作关联参数
2008-09-23 14:24 4925这几天一直在学习LoadRunner的VuGen编程,今天想对 ... -
关于Loadrunner非常好的英文网站
2008-09-23 14:07 1884今天无意间在一个测试同行的BLOG中发现了这个网站的链接: h ... -
LoadRunner脚本编写(5)-- 检查点,关联等函数
2008-09-22 16:04 4114本文接着前面脚本编写4 http://www.51testin ... -
LoadRunner学习---脚本编写(4)(比较重要)
2008-09-22 16:01 4921今天接着来翻译http://www.wilsonmar.com ...
相关推荐
- **数据类型转换**:例如,使用itoa()函数将整数转换为字符串,对于处理复杂数据格式尤为重要。 - **日期时间操作**:掌握日期时间的计算和格式化,对于模拟真实世界的测试场景非常必要。 - **轮询批处理运行状态**...
1. **LoadRunner脚本编写**: LoadRunner的脚本主要由C语言编写,其中包含初始化(vuser_init.c)、结束(vuser_end.c)、动作(Action.c)等部分。在Action.c文件中,我们会实现读取图片文件并转换的逻辑。通常,...
在IT行业中,脚本编写是自动化测试和性能测试的关键部分,尤其在LoadRunner(LR)这样的性能测试工具中。LR允许我们模拟用户行为并执行各种操作,包括处理加密和解密的数据流,这对于确保安全性和数据完整性至关重要...
- **lrs_decimal_to_hex_string**:将十进制整数转换为十六进制字符串。这种转换对于网络通信中的数据表示非常有用。 - **lrs_ebcdic_to_ascii**:将缓冲区数据从 EBCDIC 格式转换成 ASCII 格式。这是与 lrs_ascii...
LoadRunner通过VuGen提供了一种简便的方式录制用户操作,将这些操作转换为可重复执行的脚本。录制过程涉及选择合适的协议和Vuser类型,然后进行实际的操作录制。例如,在Web Vuser中,用户可以通过浏览器进行常规的...
- **lrs_decimal_to_hex_string**:将十进制整数转换为十六进制字符串。这种转换在处理网络数据时常常需要用到。 - **lrs_ebcdic_to_ascii**:将缓冲区数据从EBCDIC格式转换成ASCII格式。与上一个函数相反,这也是...
- **数据类型转换:** 由于LoadRunner捕获到的数据默认为字符串格式,因此需要使用`atoi`等函数将其转换为整型数据。 **2.3 处理捕获的信息** - **筛选验证码session:** 捕获的session信息可能包含多个名值对,...
3. **使用`lr_convert_string_encoding`函数**:也可以通过调用`lr_convert_string_encoding`函数来转换字符串编码,示例代码如下: ```c lr_convert_string_encoding(lr_eval_string("{ReplyContents}"), LR_ENC...
- **lr_eval_string()**:返回脚本中的参数值,并将其转换为字符串类型。 - **lr_log_message()**和**lr_output_message()**:用于在日志和输出中记录信息。 2. **脚本编辑**: - **事务添加**:事务可以在录制...
以上就是LoadRunner脚本中常见的函数及其功能,掌握这些函数的使用能够帮助你编写出更加精细和真实的性能测试脚本,有效地评估系统性能和稳定性。在实际工作中,根据测试需求灵活运用这些函数,可以实现各种复杂的...
2. **数据类型匹配问题**:在进行数值比较时,如果两边的数据类型不一致(比如一个是字符串,另一个是浮点数),即使它们的值相同,也会被判断为不相等。在案例中,`totalprice`是一个字符数组,而`ftotalprice`是一个...