zoukankan      html  css  js  c++  java
  • LoadRunner 关联和集合点、检查点

    1)关联的定义

    很多时候,当时录完之后,没有问题。过一段时间再跑脚本,就不会成功。比如session,过期了,再一次使用,就会出错。这个时候,需要在每次访问的时候动态的拿到session,这种情况就需要用到关联。

    2)参数化和关联的区别的阐述

    参数化变的是提交的东西。关联的值是从服务器响应中拿到

    3)什么时候需要关联?

    服务器返回的动态变化且对业务有影响的

    关联小例子

    演示WebTours登录时,如果总是用同一个session,可能登录不成功,需要对session关联。

    Action()
    {
        web_url("WebTours",
            "URL=http://127.0.0.1:1080/WebTours/",
            "TargetFrame=",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t8.inf",
            "Mode=HTML",
            EXTRARES,
            "URL=http://www.bing.com/favicon.ico", ENDITEM,
            LAST);
    
        web_submit_data("login.pl",
            "Action=http://127.0.0.1:1080/WebTours/login.pl",
            "Method=POST",
            "TargetFrame=body",
            "RecContentType=text/html",
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
            "Snapshot=t9.inf",
            "Mode=HTML",
            ITEMDATA,
            "Name=userSession", "Value=121391.541595788zcttAHHptcAiDDDDDHtztptztfcf", ENDITEM,
            "Name=username", "Value=jojo", ENDITEM,
            "Name=password", "Value=bean", ENDITEM,
            "Name=JSFormSubmit", "Value=off", ENDITEM,
            "Name=login.x", "Value=54", ENDITEM,
            "Name=login.y", "Value=16", ENDITEM,
            LAST);
    
        web_url("SignOff Button",
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
            "TargetFrame=body",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
            "Snapshot=t10.inf",
            "Mode=HTML",
            LAST);
    return 0;
    }

    找到usersession是从哪个页面返回的。

    右键value的值添加关联。

    关联后代码变化:

    Action()
    {
        web_reg_save_param_ex(
            "ParamName=CorrelationParameter_1",
            "LB=userSession value=",
            "RB=>
    <table border",
            SEARCH_FILTERS,
            "Scope=All",
            "IgnoreRedirections=Yes",
            "RequestUrl=*/nav.pl*",
            LAST);
    
        web_url("WebTours",
            "URL=http://127.0.0.1:1080/WebTours/",
            "TargetFrame=",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t8.inf",
            "Mode=HTML",
            EXTRARES,
            "URL=http://www.bing.com/favicon.ico", ENDITEM,
            LAST);
    
        web_submit_data("login.pl",
            "Action=http://127.0.0.1:1080/WebTours/login.pl",
            "Method=POST",
            "TargetFrame=body",
            "RecContentType=text/html",
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
            "Snapshot=t9.inf",
            "Mode=HTML",
            ITEMDATA,
            "Name=userSession", "Value={CorrelationParameter_1}", ENDITEM,
            "Name=username", "Value=jojo", ENDITEM,
            "Name=password", "Value=bean", ENDITEM,
            "Name=JSFormSubmit", "Value=off", ENDITEM,
            "Name=login.x", "Value=54", ENDITEM,
            "Name=login.y", "Value=16", ENDITEM,
            LAST);
    
        web_url("SignOff Button",
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
            "TargetFrame=body",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
            "Snapshot=t10.inf",
            "Mode=HTML",
            LAST);
    return 0;
    }

    可运行成功。

    关联位置,在请求之前。只要是web_reg开头的函数,是注册函数,都放在请求之前。

    web_reg_save_param_ex(
    "ParamName=参数名",
    "LB=左边界",
    "RB=右边界",
    SEARCH_FILTERS,
    "Scope=All", //搜索区域 

    All - Search the entire buffer
    Headers - Search only the headers
    Body - Search only body data
    Cookies - Search only in cookies

    "IgnoreRedirections=Yes", //忽略重定向。
    "RequestUrl=*/nav.pl*",
    LAST);

    关联的其他方法:

    自动关联(不推荐使用)


    在运行时扫描脚本中的关联。(不建议使用)

    集合点 

    1、集合点的概念:需要在某一点多个user同时执行。

    2、解析集合点函数:

    lr_rendezvous("test"); 只有在control里面起作用。

    3、只能在action中添加集合点。不能添加到init和end

    4、事务中添加集合点呢。如果不满足条件,会在集合点处停止,拉长事物响应时间。所以尽量不要添加到事务里面。

    检查点函数:

    通过检查点函数,可以来验证结果是否符合预期。

    web_reg_find("Fail=NotFound",
    "Search=Body",
    "Text=Congratulations!",
    LAST);

    在viewtree模式下,找到需要检查内内容,右键:

    Search for specific Text :需要查询的标准文本,与word 中的查找功能十分相似。

    Search Text by start and end of string : 文本检查点函数也同样提供了根据左便捷进行查找的功能,选项参考上一节关联函数。

    Search in : 设置在服务器返回的哪部分数据中进行查询。

    Save count : 这是文本检查点很特别的功能,它将记录查找内容的出现次数并且存放到一个参数中,这里可以填写一个参数名称来存放计数结果

    Fail if :设置在什么情况下文本检查点函数错误,提供了两个选项:Found、NotFound 。 Found 也就是说如果在服务器返回中存在需要检查的对象,那么文本检查点函数出错;选择NotFound 则相反,如果没有找到对应的内容,那么文本检查点函数出错。

      检查点函数的错误会导致整个脚本运行结果的失败,通过这个功能可以方便地定位脚本运行中的逻辑错误。

    失败

    成功

  • 相关阅读:
    winform音频播放器(有声小说[凡人修仙传])
    c# 小小备忘录
    编程语言 : Java的动态Web解决方案泛谈
    服务器 : Apache Tomcat
    荐书 : 调试九法
    框架应用 : Spring MVC
    框架应用 : Spring
    数据库 : Mysql
    框架应用:Mybatis
    String对象的一些函数用法与心得
  • 原文地址:https://www.cnblogs.com/milanmi/p/7087660.html
Copyright © 2011-2022 走看看