




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LoadRunner编写(6)数据类型转换和字符串操作一,数据类型转换没有使用过 C 编程的 LoadRunner介绍这方面的知识。1 相似函数的输出在不同的位置编写者会发现在数据类型转化方面比较。下面象很多C 函数一样,使用 atoi 函数的结果即为返回值如Result = atoi( charY );而:itoa 的返回结果为第二个参数。itoa(X, charY, 10);第一个参数是需要转换的数二个参数是转换后的字符数组,需要注意的是数组必须定义为固定的长度,如:char chary20;数组的最大长度为 32064(32K),否则会出现“too many variables”编译错误
2、。如果定义为变长的字符串如 char *charY,则程序会出错。第三个参数不是数组的长度,而是数字的基数,10 进制是最常用的,其他还有二进制,八进制,十六进制。2 有一些函数实现了同样的功能itoa 不是一个标准的 ANSI C 函数但是是 C 的 stdlib.h 中的一个函数。所以它不被包括在 unix 机器上的 LibC 中。可以使用标准的 sprf 函数来代替:sprf(charY,“%d”,X);3 是用%X 来转换一个十六进制数Num;sscanf(“f”,“%X”,&Num);lr_output_message(“%d”,Num); /打印 65535 ,f 的整数值4 从文
3、本中提取数字的规则如果第一个字符不是数字或者为空,atoi 返回 0,即“e24”会返回 0atoi 转换一个非数字的字符会返回组成这个字符的数字,如“-3.2”返回-3.0。“123345”返回 123。5 LoadRunner言的数字。中的参数必须转换成 C 字符串。有两种方式来转化 LR 的参数为 C 语6 参数的算术运算LoadRunner 没有提供对参数的算术运算的函数。所以 LR 的参数必须:转换成 C 的整数使用 C 的函数来运算最后返回一个 C 的字符串3) 把返回的字符串保存成参数zibeike 注:除了对于数字类型的参数的运算之外,对于文本形式的参数的操作,可以参考我的另一
4、篇文章的内容:http:/二字符串操作/?34866/action_viewspace_itemid_75592.html在 C 语言中,字符串是固定长度的,因为他们本身由独立的字符组成的字符数组。数组是只读的。任何修改字符串长度的函数调用都会报错:Error: Creter runtime error - memory violation error during replay.在 LoadRunner 的 as_web.h 库中的字符串函数可以使用“prototy读写内存:”的方式char *strtok(char *, char *); / tokenizrototype char *s
5、trstr(char *, char *); / substring prototypechar *strdup(char *); / String duplication prototype floaof(); / alpha to return float daypelr_eval_string(pNum_out);/ 3. Save the string as a parameter to be passed on: lr_save_string( cBuf, pNum_out);/Prout the parameter value after incrementing it. lr_m
6、essage(* Parameter from %s to %s,lr_eval_string(pNum_in);/ 1. Evaluate parametero a Ceger: i = atoi( lr_eval_string(pNum_in) );/ 2. Do the mand output the result to a C string:sprf( cBuf, %d, i+1);i;char cBuf10;sprf(X, %d, lr_eval_string() );i = atoi( lr_eval_string( ) );#include as_web.hchar *strto
7、k(char *, char *); / prototype function call.ActionX()char charcharaBuffer256; / input*cToken; / individual cSeparator = ; /string to be parsed. token from strtok.blseparator.i; / incrementerchar val320; / output array of strings. char modified_val20;/ Create a parameter named pDate:lr_save_string(J
8、anuary 2, 2001, pDate);/ Put parametero a string buffer:strcpy( aBuffer,lr_eval_string(pDate);/ Show the buffer for debugging:lr_output_message(%sn,aBuffer);/ getword (to thebl):cToken = strtok( aBuffer,cSeparator);i = 1;if(!token)/token was not found: lr_output_message(No tokens found inreturn( -1
9、);string!); else while( cToken != NULL) / tokens are not NULL:lr_output_message(Token=%s, cToken);/ Stuff in another array:strcpy( vali, cToken );/ Get next token:cToken =strtok( NULL, cSeparator); i+; / incrementlr_output_message(Val #1lr_output_message(Val #2lr_output_message(Val #2is:is:is:%s, va
10、l1);%s, val2);%s, val3);strncpy( modified_val, val2, 1 );strcat 连接两个字符串strchr 返回指向第一个要查找的字符出现的位置的指针strcmp 比较两个字符strcpy字符串到另一个stricmp 执行一个大小写敏感的比较其他还有 strdup,strncat,strncpy,strnicmp,strrchr,strset,strspn,strstr 等字符串操作的函数。zibeike 注:关于字符串操作的编写,可以参考另一篇文章:http:/?34866/action_viewspace_itemid_75428.html三
11、、字符串操作zibeike 翻译自:http:/1lrscrpt.htmLoadRunner 中常用的字符串操作函数有:strcpy(destination_string, source_string);strcat(string_t_gets_appended, string_t_is_appended);atoi(string_to_convert_to_); /returns theeger valueitoa(eger_to_conver_to_string, destination_string, base); / base is 10strcmp(string1, string2)
12、; / returns 0 if both strings are equalmodified_val2 = 0;while (modified_val2 != NULL) lr_output_message(=%s, modified_val); modified_val2 = strtok(NULL, );return 0;对各函数的定义:strcpy( ):拷贝一个字符串到另一个字符串中.strcat( ):添加一个字符串到另一个字符串的末尾。strcmp( ):比较两个字符串,如果相等返回 0。 atoi():转换一个 ASCII 字符串为一个整型。 itoa():根据给定的进制,转换
13、一个整型数据为 ASCII 字符串下面的例子使用了上面这些函数:Actions()char MyString120 = ; char MyString220 = ;char MyString320 = Mercury2; char Cstring10 = 12345;C;/ MyString1 is empty/lr_output_message( MyString1 = %s,MyString1);/ copy Mercury1o MyString1/ strcpy(MyString1,Mercury1);/ Now MyString1 contains Mercury1/lr_output
14、_message( MyString1 = %s,MyString1);四、数字操作/ Copy MyString3o MyString2/lr_output_message( MyString2 = %s,MyString2); strcpy(MyString2,MyString3);lr_output_message( MyString2 = %s,MyString2);/ Catenate MyString2 to MyString1/ strcat(MyString1,MyString2);lr_output_message( MyString1 = %s,MyString1);/ C
15、string is converted toeger C/lr_output_message( Cstring = %s,Cstring); C= atoi(Cstring);lr_output_message( C= %d,C);/ Cis converted to string C= 100;itoa(C,Cstring,10);lr_output_message( Cstring = %s,Cstring);return 0;这几天一直在学习 LoadRunner 的 VuGen 编程,今天想对关联函数 web_reg_save_param 做详细的试验和研究:问题提出:如何对关联的数据
16、进行字符串操作。下面使用了 LoadRunner 自带的订票例子为例,进行了这方面的试验。假设我要关联的数据是由几个字符串组成的。如何使这些字符串组成一个参数,供我后面的函数使用?解决方法:使用多个关联函数,对关联参数进行字符串操作,最后把生成的字符串保存成一个参数,供下面调用该参数的函数使用。如下:Action()number1,number2;char ses111000; char string1000;length;char *stringtemp;/char ses2220;web_reg_save_param(ses1,LB=name=userSes value=,RB=.,Ord
17、=ALL,LAST);web_reg_save_param(ses2,LB=.,RB=&;,Ord=ALL,LAST);web_url(WebTours,URL=,Resource=0, RecContentType=text/html, Referer=,Snapshot=t1.inf,Mode=HTML,LAST);strcpy(string,);strcpy(string,lr_eval_string(ses1_1);/strcpy(ses1,);sprf(ses11,ses2_1);strcat(string,.);length= strlen(lr_eval_string(ses l
18、ength=length-2;11);number1=atoi(lr_eval_string(ses1_count);number2=atoi(lr_eval_string(ses2_count);lr_output_message(%d,%d,number1,number2);/lr_output_message(%d,length);stringtemp=lr_eval_string(ses11);strncat(string,stringtemp,length);/srcat(string,ses11);lr_save_string(lr_eval_string(string),ses);lr_output_message(%s,lr_eval_string(ses1_1);lr_output_message(%s,lr_eval_string(ses2_1);有两个关联的参数,ses1 和 ses2,最后生成 ses,被 web_submit_data 函数调用。蓝色部分是需要特别注意的地方。编写调试过程中遇到和解释:1 web_reg_save_param()中如果没有指定 Ord=ALL 的话,默认是取的第一个符合左右边界的值,这样使用关联的参数时可以直接使用变量名,如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业安全培训考试试题答案高清
- 2025年企业员工岗前安全培训考试试题(黄金题型)
- 2025厂级员工安全培训考试试题及答案4A
- 2025企业负责人安全培训考试试题及完整答案(考点梳理)
- 2024-2025工厂车间安全培训考试试题附参考答案【综合卷】
- 2024-2025企业级安全培训考试试题及答案各地真题
- 工程项目环境影响评估措施
- 2025公司管理人员安全培训考试试题(ab卷)
- 合同付款流程及责任3篇
- 志愿服务社区责任3篇
- 辽宁协作校2024-2025学年度下学期高三第二次模拟考试语文试卷(含答案解析)
- 2025-2030汽车扬声器市场发展现状分析及行业投资战略研究报告
- 期中考试考后分析总结主题班会《全员出动寻找消失的分数》
- 2025年广东省广州市广大附中等校联考中考语文模拟试卷(4月份)
- 成都树德中学2025年高三第四次联考物理试题文试卷
- 民法典课程大纲
- 2025-2030中国数据安全服务行业市场深度分析及前景趋势与投资研究报告
- 医疗AI辅助康复管理
- 山东省天一大联考·齐鲁名校教研体2024-2025学年(下)高三年级第六次联考(物理试题及答案)
- 房地产市场报告 -2025年第一季度青岛写字楼和零售物业市场概况报告
- 2025年03月人力资源社会保障部所属单位笔试历年典型考题(历年真题考点)解题思路附带答案详解
评论
0/150
提交评论