51Testing软件测试论坛

标题: 请教一个参数替换的问题 [打印本页]

作者: shihk    时间: 2007-10-14 19:47
标题: 请教一个参数替换的问题
一般来说参数替换是比较简单的,但我遇到一个很棘手的参数替换问题。如下:
提交函数里
          web_submit_data("show.jsp",
                  "Action=http://127.0.0.0/temp.jsp",
                  "Method=POST",
                  "RecContentType=text/html",
                  "Referer=http://127.0.0.0/temp.jsp",
                  "Snapshot=t19.inf",
                  "Mode=HTML",
                  ITEMDATA,
                  "Name=keyNumType", "Value=0", ENDITEM,
                  "Name=queryMethod", "Value=normal", ENDITEM,
                  "Name=isNewQuery", "Value=new", ENDITEM,
                  "Name=isCurrent", "Value=0", ENDITEM,
                  "Name=telKeyNumAll", "Value=on", ENDITEM,
                  "Name=telKeyNum0", "Value=5706030826:20024560000000:", ENDITEM,
                  "Name=telKeyNum1", "Value=5706032536:20056781000000:", ENDITEM,
                  "Name=telKeyNum2", "Value=5706032656:20061019866000:", ENDITEM,
                  "Name=telKeyNum3", "Value=5708160390:20061013000000:", ENDITEM,
                  "Name=telKeyNum4", "Value=5708160392:25454013000000:", ENDITEM,
                  "Name=telKeyNum5", "Value=5708162583:20066665000000:", ENDITEM,
                  "Name=telKeyNumCount", "Value=6", ENDITEM,
                  "Name=netKeyNumCount", "Value=2", ENDITEM,
                  "Name=listType1", "Value=1", ENDITEM,
                  "Name=listType2", "Value=12", ENDITEM,
                  "Name=listType3", "Value=", ENDITEM,
                  "Name=month", "Value=200709", ENDITEM,
                  "Name=pageSize", "Value=10", ENDITEM,
                  LAST);
现在要将Name=telKeyNum0一直到Name=telKeyNum6的value值全部替换掉,但并不知道有几个Name=telKeyNum。
telKeyNumCount的值等于所有的telKeyNum总数。
请教高手帮助!
作者: lyscu    时间: 2007-10-14 20:05
关注一下,还真没有碰到过。
作者: lyscu    时间: 2007-10-14 20:06
自己写代码吧,做个判断,然后进行取参数。c语言。我也正要研究呢。呵呵。

[ 本帖最后由 lyscu 于 2007-10-14 20:36 编辑 ]
作者: shihk    时间: 2007-10-14 22:05
在这一段写循环比较好
"Name=telKeyNum0", "Value=5706030826:20024560000000:", ENDITEM,
但是这个是web_submit_data函数的参数,没法做循环。
作者: ymtest    时间: 2007-10-14 22:57
搬个凳子看看高手怎么解决
作者: shihk    时间: 2007-10-15 09:42
期待
作者: Zee    时间: 2007-10-15 10:52
替换的数据是从哪里来的?关联的?本地的?
作者: qiguojie    时间: 2007-10-15 11:11
如同ZEE所说,关键就是:"Name=telKeyNumCount", "Value=6", ENDITEM,
怎么获得的?

获得这个值以后,使用选择分支语句搞定吧。。脚本会比较长;
例如:
switch(count)
{
   case 1:
      web_submit_data();
      break;
   case 2:
      web_submit_data();
      break;
   ……
}

[ 本帖最后由 qiguojie 于 2007-10-15 11:21 编辑 ]
作者: shihk    时间: 2007-10-15 13:53
参数从本地.dat文件里获取

这个最大可以有36种,写CASE语句太长。有没有更好的办法?
作者: kleavings    时间: 2007-10-15 18:01
你看能不能做个关联,无论他返回多少个,只要你做的关联对于这n个左右边界都相同,那么你就知道他返回多少个了,这样不就好办了。
作者: 1qazse4    时间: 2007-10-15 18:18
关注中...
作者: pbulic    时间: 2007-10-15 19:12
看上去很难.实际很简单.
作者: duola1119    时间: 2007-10-16 09:19
说一下自己的想法.
action{
int i;
char count[1024];
首先将telKeyNumCount", "Value=6", ENDITEM中的"6"取出来
web_reg_save_param("telKeyNumCount",
"LB=telKeyNumCount\", \"Value=",
"RB=\"",
"Ord=ALL",
LAST);/*存到telKeyNumCount中*/
----------------------
然后利用for循环,产生telKeyCNumCount个这样的值
for(i=0;i<{telKeyNumcount};i++)/*循环取得从0到telKeyNumCount的i的值*/
sprintf(count,"telKeyNum%d",i);/*输出telKeyNum0,telKeyNum1,....telKeyNum6*/
lr_output_message("count=%s",count);/*输出count的值,帮助调试.count的值为telKeyNum0到telKeyNum6*/
作者: shihk    时间: 2007-10-16 09:58
请教一下duola1119:
将telKeyNum0,telKeyNum1,....telKeyNum6取出来以后怎么放在web_submit_data的参数中?
在web_submit_data函数中能做到循环赋参吗?




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