51Testing软件测试论坛

标题: lr函数中使用变量的问题 [打印本页]

作者: xw898    时间: 2006-3-29 09:35
标题: lr函数中使用变量的问题
1,问题背景:
在action中有一个提交函数:web_submit_data(){
....
ITEMDATA;
"Name=id","Value=788",ENDITEM,
LAST;
}
想要将“788”用变量代替,不是参数化;
脚本如下:
action()
{
int i;
i=800;

web_submit_data(){
....
ITEMDATA;
"Name=id","Value={i}",ENDITEM,
LAST;
}

return 0;
}
执行脚本,但是报错,变量并没有替换为800;
2,请问题大家是怎么解决类似问题,谢谢!
作者: xyuan007    时间: 2006-3-29 10:11
int i=800;
        char number[10];
        char mystr[1024];
        char *strval = "Value=";
        itoa(i,number,10);
        strcat(strcat(mystr,strval),number);
        lr_output_message("%s",mystr);

最后用mystr替换掉"Value={i}"即可
作者: xw898    时间: 2006-3-29 13:04
谢谢xyuan007 的回复,用你的方法单独执行是对的,
但放入web_submit_data
(
....
ITEMDATA,
"Name=id","mystr",ENDITEM, //or "Name=id",mystr,ENDITEM or "Name=id","{mystr}",ENDITEM
Last);
执行,还不是报错,通不过?还请帮忙看看,十分感谢!
报错信息:Error -27225: the "□□h□□Value=800" argument (number 10) is not recognized within "ITEMDATA"
是不是因为“□□h□□"造成的,该乱码是在strcat后出现的,检查发现当取消init和end中的登录后,就没有乱码了;

[ 本帖最后由 xw898 于 2006-3-29 15:28 编辑 ]
作者: xyuan007    时间: 2006-3-29 16:35
天啊,你将mystr代入到web_submit_data时为什么要加上双引号?
好心不一定办好事,去掉双引号就对了。
作者: xw898    时间: 2006-3-29 16:50
衷心谢谢你的帮忙,我换成mystr后,还不是不对,检查后发现mystr前有乱码,
可能是登录的init中的字串与其混在一起了,
将字符数组赋值为空或分配地址空间后,正确;
作者: fy_dodo    时间: 2006-10-9 10:29
我也遇到了类似的问题,用了上述方法,有语法错误,不知道为什么,在action中:
int sum;
sum=100;

        char number[10];
        char mystr[1024];
        char *strval = "Value=";
        itoa(sum,number,10);
        strcat(strcat(mystr,strval),number);


web_submit_form("comment",
                "Snapshot=t4.inf",
                ITEMDATA,
                "Name=name", "Value=小冯", ENDITEM,
                "Name=answer",mystr, ENDITEM,
                                          EXTRARES,
                                          .....
                                          LAST);

检查代码有错误:
Action.c (69): illegal statement termination
Action.c (69): skipping `char'
Action.c (69): undeclared identifier `number'
Action.c (69): type error: pointer expected
.......
作者: fy_dodo    时间: 2006-10-9 11:27
标题: 自己回
变量定义位置放错了,应该放在action的最前面,现在可以了。
作者: jiline    时间: 2006-10-9 11:34
请教:int sum;
sum=100;

        char number[10];
        char mystr[1024];
        char *strval = "Value=";
        itoa(sum,number,10);
        strcat(strcat(mystr,strval),number);
这是定义LR中变量的模版?
不太理解这种定义方式的意思。
作者: sky2006ok    时间: 2006-10-9 17:52
是啊,请大侠们指教一下。我也是刚刚接触lr。什么都不懂!
请教:int sum;
sum=100;

        char number[10];
        char mystr[1024];
        char *strval = "Value=";
        itoa(sum,number,10);
        strcat(strcat(mystr,strval),number);
这是定义LR中变量的模版?
不太理解这种定义方式的意思。
作者: jackloo    时间: 2006-10-15 22:42
查帮助去。LR的帮助很详细的。不自学,永远都不会用的。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2