51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2518|回复: 2
打印 上一主题 下一主题

[原创] 如何在从参数文件中取出指定行的数据?

[复制链接]
  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2008-3-26 11:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    希望碰见过类似问题或者是知道怎样让查询的参数在取值时与自动生成的数据保持一致的XDJM,请给个解决方式。

    设计脚本的目的:
    1.自动生成一系列唯一的文本数据,并将其输入到.dat文件中;
    2.查询条件及相应的检查点都使用上一步中生成的数据作为参数化的值;

    实现中遇见的问题:
    1.单独调试create_file()和search()均无问题产生;
    2.当组合两个Action时,虽然create_file()在前,但是仍然必须保证该文件中已经存在至少一行数据!否则在做Search()时,将提示未找到值,并且查询的时候都使用
    “{chaxundewenben}”作为查询和检查的数据了。
    3.虽然在文件中添加了一行数据,但是执行的时候没有到达最初设计的目的。现在执行的结果是每次迭代使用的查询数据都是上次迭代中自动生成的数据。也就是差了一行
    数据。

    代码如下:
    //向.dat文件中输入数据,以便在后续查询时作为参数化的基础数据
    create_file()
    {
            int tmp = 0;
            static int iter=0;
            char buf[6];       
            int datetime;
            long file_stream;
            char *filename="d:\\param.dat";

    //使用时间戳,生成一个唯一的文本,供后续查询、检查使用   
            lr_save_datetime("%m%d%H%M",0, "DateTimeParam");
            datetime = atoi(lr_eval_string("{DateTimeParam}"));
            itoa(datetime, buf, 36);
            lr_save_string(buf, "ConvertedDateTimeParam");               
            lr_save_string(lr_eval_string("T{ConvertedDateTimeParam}{NewParam}"), "SearchtoText");               
            lr_output_message("Unique Search Text: %s", lr_eval_string("{SearchtoText}"));               

    //打开、输入、关闭文件
            if((file_stream=fopen(filename,"a+"))==NULL){
                    lr_error_message("Cannot open the file:%s",filename);
                    return -1;
            }               
            fprintf(file_stream,"\n%s", lr_eval_string("{SearchtoText}"));               
            if(fclose(file_stream)){
                    lr_error_message("Cannot close the file:%s",filename);
            }

            return 0;
    }

    //使用create_file中的文件作为参数值的文件,进行查询和检查
    Search()
    {
            web_url("www.baidu.com",
                    "URL=http://www.baidu.com/",
                    "Resource=0",
                    "RecContentType=text/html",
                    "Referer=",
                    "Snapshot=t1.inf",
                    "Mode=HTML",
                    LAST);

    //设置检查点,该参数取自create_file文件中的值
            web_reg_find("Text={chaxundewenben}",
                    "Search=body",
                    LAST);
            lr_message("1search text is %s",lr_eval_string("{chaxundewenben}"));

    //执行查询操作,查询的文本进行参数化,该参数取自create_file文件中的值
            web_submit_form("s",
                    "Snapshot=t2.inf",
                    ITEMDATA,
                    "Name=wd", "Value={chaxundewenben}", ENDITEM,
                    EXTRARES,
                    "URL=http://s.baidu.com/w.gif?path=http://www.baidu.com/s?wd=tt&cl=3&t=1206497983090", "Referer=http://www.baidu.com/s?wd=tt&cl=3", ENDITEM,
                    LAST);
            lr_message("2search text is %s",lr_eval_string("{chaxundewenben}"));

            return 0;
    }
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    2#
     楼主| 发表于 2008-3-26 12:27:42 | 只看该作者

    问题已解决!

    只要把写文件时的\n放在 %s 后面就没有这个问题了。
    create_file()
    {
            int tmp = 0;
            static int iter=0;
            char buf[6];       
            int datetime;
            long file_stream;
            char *filename="d:\\param.dat";

    //使用时间戳,生成一个唯一的文本,供后续查询、检查使用   
            lr_save_datetime("%m%d%H%M",0, "DateTimeParam");
            datetime = atoi(lr_eval_string("{DateTimeParam}"));
            itoa(datetime, buf, 36);
            lr_save_string(buf, "ConvertedDateTimeParam");               
            lr_save_string(lr_eval_string("T{ConvertedDateTimeParam}{NewParam}"), "SearchtoText");               
            lr_output_message("Unique Search Text: %s", lr_eval_string("{SearchtoText}"));               

    //打开、输入、关闭文件
            if((file_stream=fopen(filename,"a+"))==NULL){
                    lr_error_message("Cannot open the file:%s",filename);
                    return -1;
            }               
            fprintf(file_stream,"%s\n", lr_eval_string("{SearchtoText}"));       
                    if(fclose(file_stream)){
                    lr_error_message("Cannot close the file:%s",filename);
            }

            return 0;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-7 09:06
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2008-3-26 13:08:25 | 只看该作者
    研究一下
    我也遇到过此类问题,不知道怎么解决
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-20 08:48 , Processed in 0.073523 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表