美文网首页
LoadRunner应用之批量获取邮编

LoadRunner应用之批量获取邮编

作者: 6c0fe9142f09 | 来源:发表于2018-02-05 11:22 被阅读188次

    前言

    工作中遇到要统计一堆人邮编信息的情况,网络目前提供的批量邮编查询功能又太弱,一个一个的把他们的地址粘到百度上查询再录入太过麻烦,所以写一个小脚本完成这个单调的工作。

    1.接口选择

    本文选择百度的邮编查询页面进行查询
    分析发现邮箱查询的请求是通过Get方式实现的,链接为
    http://opendata.baidu.com/post/s?wd=%BD%AD%CB%D5%CA%A1%D1%CE%B3%C7%CA%D0&rn=20
    而我们的关键字就是wd这个参数的值了,后续只要对其参数化便可实现不同值的查询

    2.脚本编写

    下一步就可以开始编写我们的脚本,通过web_url构造一个简单的get请求,并对wd的值进行参数化

        web_url("s", 
            "URL=http://opendata.baidu.com/post/s?wd={chengshi}&rn=20", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t1.inf", 
            "Mode=HTML", 
            EXTRARES,LAST);、
    

    参数化
    [图片上传失败...(image-26a8ed-1517800919042)]

    3.关联并获取邮编

    通过关联去获取查找的邮编,关联左右边界如下,关联技巧不做详细介绍

        web_reg_save_param("youbian",
            "LB=</em> ",
            "RB=</a></li>",
            "NotFound=ERROR",
            "Search=Body",
            LAST);
    

    4.简单的打印查看结果

    到此为止,加入简单的输出函数,我们就可以实验有没有成功了

        lr_error_message("city is:%s  youbian is:%s",lr_eval_string("{chengshi}"),lr_eval_string("{youbian}"));
    

    运行结果

    Action.c(20): Error: city is:江苏省睢宁县  youbian is:221200
    

    5.打印到本地txt文本中

    为了方便录入,我们将找到的邮编统一放置到txt文本中,函数如下

    在输出语句后加入代码
        writeStringToFile(lr_eval_string("{youbian}\n"));
    
    在Action下定义函数
    int writeStringToFile(char *string){
        char *filename = "F:\\脚本文件\\wenjianshuchu\\fileOutTest.txt";//参数文件保存路径,根据需要修改
        long file;//指向文件的指针
    //  extern char * strtok(char * string, const char * delimiters ); // 扩展声明
        //用于打开文件
         if ((file = fopen(filename, "a+" )) == NULL){
    //      if ((file = fopen(filename, "w+" )) == NULL)   {
             lr_output_message("###################################");
             lr_output_message("Unable to create %s", filename);
             return -1;
         }
         //fwrite(string,strlen(string),1,file );
         fprintf(file, string);
         fclose(file);//关闭文件
         return 1;
    }
    

    全部代码

    Action()
    {
        web_reg_save_param("youbian",
            "LB=</em> ",
            "RB=</a></li>",
            "NotFound=ERROR",
            "Search=Body",
            LAST);
    
        web_url("s", 
            "URL=http://opendata.baidu.com/post/s?wd={chengshi}&rn=20", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t1.inf", 
            "Mode=HTML", 
            EXTRARES,LAST);
    
        lr_error_message("city is:%s  youbian is:%s",lr_eval_string("{chengshi}"),lr_eval_string("{youbian}"));
    
        writeStringToFile(lr_eval_string("{youbian}\n"));
    
        return 0;
    }
    
    
    int writeStringToFile(char *string){
        char *filename = "F:\\脚本文件\\wenjianshuchu\\fileOutTest.txt";//参数文件保存路径,根据需要修改
        long file;//指向文件的指针
    //  extern char * strtok(char * string, const char * delimiters ); // 扩展声明
        //用于打开文件
         if ((file = fopen(filename, "a+" )) == NULL){
    //      if ((file = fopen(filename, "w+" )) == NULL)   {
             lr_output_message("###################################");
             lr_output_message("Unable to create %s", filename);
             return -1;
         }
         //fwrite(string,strlen(string),1,file );
         fprintf(file, string);
         fclose(file);//关闭文件
         return 1;
    }
    
    

    相关文章

      网友评论

          本文标题:LoadRunner应用之批量获取邮编

          本文链接:https://www.haomeiwen.com/subject/ngoczxtx.html