zoukankan      html  css  js  c++  java
  • web test LoadRunner web_reg_save_param / guanlian / server param response

    loadrunner 记录抓取服务器返回的关联数值并保存在log.txt

    //192.168.157.77

    文件:D:\TestCase\20121010_archive_manager\pspre.cn******.com\tc_dangan_shenqin_add_data20121102\action.c

    内容:

    Action()
    {
        char *pr;
        char *filename= "d://log.txt";
        long file;
        char *p;
    // 其他脚本代码 、、、
        web_reg_save_param("MyBusinessCodeList",
            "LB='businessCode' value ='",
            "RB='",
            "Ord=1",
            "NotFound=ERROR",
            "Search=All",
            LAST);
    // 其他脚本代码 、、、
        if ((file = fopen(filename, "at")) == NULL )
        {
            lr_error_message("Cannot open %s", filename);
            return -1;
        }
        //p = lr_eval_string("{MyBusinessCodeList}"); //打印单列参数化数据log
        p = lr_eval_string("{MyBusinessCodeList},{MyBusinessCodeList}"); //打印多列参数化等数据
        while ((*p != NULL) && fputc(*(p++), file) != -1); 
        fputc('\n',file);
        fclose(file);
        return 0;
    }

     

     

    http://hi.baidu.com/sherry19900326/item/e3df4533061d151b9dc65e7c

    Loadrunner关联(三)手动关联

    Loadrunner(三)手动关联

    手动关联的过程大致如下:

    第一步:录制测试 脚本,录制二遍

    第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联

    第三步:确定插入关联的位置
    第四步:在VIEW TREE中使用web_reg_save_param函数手动建立关联
    第五步:将脚本中有用到关联的数据,用参数代替

    第六步:验证关联的正确性

     

    下面详细介绍:

    第一步:

    录制测试脚本,录制二遍

    这一步就不用多说了,相同的操作,录制两份,分别保存

    第二步:

    使用WinDiff工具协助找出需要关联的数据
    1.在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。
    2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文 字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。

    查看二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。

    注意:lr_thik_time部分的差异可以忽略

    找到不同的部分后,复制,然后打开Recording Log或是Generation Log,按Ctrl+F,在查找窗口中粘贴差异部分的内容,点击查找找到后,查看该部分的信息,确认是客户端的请求信息还是服务器回应的信息

    如果出现在$$$$$$ Request Header For Transaction With Id 3 Ended $$$$$$这个部分,那证明是客户端发出的请求,这里是不需要做关联的

    一般做的关联都是出现在****** Response Header For Transaction With Id 7 ******和****** Response Body For Transaction With Id 7 ******中的部分。

    在找到这个信息后,需要记录如下信息:

    a.记录这个不同数据之前的内容和之后的内容

    b.记录这个不同数据出现的位置,是Header还是Body

     

    第三步:

    确认插入关联的位置

    我们在日志 中找到了两次脚本的不同点的位置,根据这个位置,我们再确定是在哪个请求之后产生的,也就是说要定位发生不同点的response是由哪个request产生的,找到了这个请求的函数位置,我们就知道要往哪里做关联了

    一般情况下关联函数写到发出请求的函数之前就可以了

     

    第四步:

    插入关联函数

    在插入关联函数前,我们先介绍关联函数web_reg_save_param

     一个web_reg_save_param函数的例子:

    web_reg_save_param ("sessionid",

         "LB=Session_id:",

         "RB=;",

         "Search=Body",

         LAST);

    在这里我们只介绍几个常用参数的含义

    语法:int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);

    参数说明:

    ParamName:存放得到的动态内容的参数名称

    list of Attributes:其它 属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写

    LB( Left Boundary ) :返回信息的左边界字串。该属性必须有,并且区分大小写。

    RB( Right Boundary ):返回信息的右边界字串。该属性必须有,并且区分大小写。

    Search :返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。

     

    那么如何插入该关联函数呢?

    1.将vugun切换到view tree模式下

    2.在左边的列表中,找到在上一步发出请求的函数,点击“右键”

    选择“insert before”

    3.在弹出的“add step”对话框的“find function”中输入“web_reg_save_param”,点击“ok”

    在“parameter name”中输入,关联函数的名称,这里最好有含义,“sessionid”

    在“left boundary”中输入,刚才记录下的不同点字符串的左面的几个字符,定义左边界,Session_id:

    在“right boundary”中输入,刚才记录下的不同点字符串的右面的几个字符,定义右边界,;

    在“search in”中,选择“body”

    点击“ok”

    4.回到脚本编辑模式下,查看该函数插入是否正确

    在发出请求的函数前应该看到:

    web_reg_save_param ("sessionid",

         "LB=Session_id:",

         "RB=;",

         "Search=Body",

         LAST);

     

    第五步:

    将脚本中有用到关联的数据,用参数代替

     

    如发出请求的参数如下,那么将原来服务器返回的动态值使用{ sessionid }来替换:

     web_submit_form("login.php_2",

         "Snapshot=t2.inf",

         ITEMDATA,

         "Name=login", "Value=wangjin", ENDITEM,

         "Name=password", "Value=wangjin", ENDITEM,

           "Name=Session_id","Value={ sessionid }", ENDITEM,

         "Name=Submit", "Value=Login", ENDITEM,

         EXTRARES,

         "URL=/media/images/border_bg_l.gif", ENDITEM,

         "URL=/media/images/header_bg.gif", ENDITEM,

         "URL=/media/images/th.gif", ENDITEM,

         LAST);

     

    第六步:

    验证关联的正确性

    回放脚本,验证关联的正确性

     

    loadrunner 关联函数的高级应用

    http://xitong.iteye.com/blog/1822319

    Action()

    {

    long file;

    char *filename="F:\\android\\data.txt";

    int cnt=1;

    int i=1;

    if((file=fopen(filename,"wb"))==NULL)

    {

    lr_output_message("打开文件失败");

    return 0;

    }

    web_reg_save_param("searchid",

    "LB=\"",

    "RB=\",",

    "Ord=All",

    "NotFound=ERROR",

    "Search=Body",

    "Convert=HTML_TO_URL",//将数据由HTML-encode数据转成URL-encode

    LAST);

     

    web_url("百度",

    "URL=http://suggestion.baidu.com/su?wd=load&p=3&cb=window.bdsug.sug&t=1295341253328",

    "Resource=1",

    "RecContentType=baiduapp/json",

    "Referer=http://www.baidu.com/",

    "Snapshot=t10.inf",

    LAST);

     

    for(i=1;i<=lr_paramarr_len("searchid");i++)//lr_paramarr_len("searchid")=atoi(lr_eval_string(searchid_count))

    {

    lr_save_string(lr_paramarr_idx("searchid",i),"userid");

     

    lr_output_message("%s",lr_eval_string("{userid}"));

     

    fwrite(lr_eval_string("{userid}"),strlen(lr_eval_string("{userid}")),1,file);

     

    fwrite( "\r\n",2,1,file );

     

    }

     

    lr_save_string(lr_paramarr_random("searchid"),"temp");

     

    lr_output_message("随即取的值是:%s",lr_eval_string("{temp}"));

    return 0;

    }

     

    end

  • 相关阅读:
    1451. Rearrange Words in a Sentence
    1450. Number of Students Doing Homework at a Given Time
    1452. People Whose List of Favorite Companies Is Not a Subset of Another List
    1447. Simplified Fractions
    1446. Consecutive Characters
    1448. Count Good Nodes in Binary Tree
    709. To Lower Case
    211. Add and Search Word
    918. Maximum Sum Circular Subarray
    lua 时间戳和时间互转
  • 原文地址:https://www.cnblogs.com/lindows/p/14390253.html
Copyright © 2011-2022 走看看