zoukankan      html  css  js  c++  java
  • LoadRunner录制:关联

    一般请求中看到 hash strings, random strings, session ID 这种,就需要动态去获取该内容,这样就需要用到关联。

    回放时自动关联

    1. 录制脚本并执行。

    2. 打开“Scan Action for Correlation”窗口,该窗口会询问用户是否要扫描脚本并建立关联,单击“yes”按钮,扫描脚本。

    有多种方式可以打开“Scan Action for Correlation”窗口:

    • 方式一:选择 Vuser –> Scan Script for Correlations。
    • 方式二:同时按住 Ctrl + F8 即可调出该窗口。
    • 方式三:执行脚本,执行完毕后系统会自动跳出该窗口。

    3. 扫描完后,可以在脚本下方的“Correlation Results”中看到扫描的结果。

    4. 检查一下扫描的结果,选择要做关联的数据,然后单击“Correlation”按钮,逐次关联。

    这里点击列出的关联条目,可以看到上面以Tree View 的方式对Record 和 Replay 的结果进行比对,方便确定要不要进行关联。

    5. 重复步骤1 ~ 步骤4 ,直到所有需要做关联的数据都找出来为止。

    手动进行关联方法一:自己写脚本添加关联

    背景:

    比如你在请求request15的时候需要用到 userid,结果你发现request2的Response里面有userid,那么你要在request2的前面添加关联脚本,假设保存到的参数为userid_result,那么在request15里面就可以直接像使用参数那样使用{userid_result} 。

    前提条件

    假设页面返回的部分 response 如下:

    image

    我们需要获取上面 <title>和 </title>之间的内容,保存到参数 TitleName里面,留着后边用。

    那么我们需要在该页面请求的前面添加关联脚本。

    添加方法:

    1. 鼠标右键,选择 Insert –> New Step。

    2. 在 Find Function 中输入 web_reg_save_param_ex,点击OK。

    3. 编辑弹出框如下。

    Parameter Name:获取的内容要保存到的参数名称,比如这里我想保存到TitleName里面,就输入TitleName。

    Left Boundary:左边界。上面看左边界我们可以输入”title>“

    Right Boundary:右边界。上面看右边界我们可以输入”</title“

    Scope:表示查找范围,比如这里在选择在BODY里面查找。还有其他选项,比如HEADERS、COOKIES

    Request URL:表示查找的URL的范围。

    image

    4. 点击OK生成脚本。

    可以在该页面请求后使用 lr_output_message 打印该参数查看是否正确。

        web_reg_save_param_ex(
            "ParamName=TitleName",
            "LB=title>",
            "RB=</title",
            SEARCH_FILTERS,
            "Scope=Body",
            "RequestUrl=*/www.cnblogs.com/*",
            LAST);
    
        web_url("www.cnblogs.com",
            "URL=http://www.cnblogs.com/",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t17.inf",
            "Mode=HTML",
            LAST);
    
        lr_output_message("TitleName:%s",lr_eval_string("{TitleName}"));

    5. 运行,查看Log

    Action4.c(4): Registering web_reg_save_param_ex was successful      [MsgId: MMSG-26390]
    Action4.c(13): Found resource "http://www.cnblogs.com/bundles/aggsite.css?
    .......
    Action4.c(13): web_url("www.cnblogs.com") was successful, 269803 body bytes, 18741 header bytes      [MsgId: MMSG-26386]
    Action4.c(22): TitleName:博客园 - 开发者的网上家园

    可以看到正确获取了我们想要的内容。

    备注:

    感想就是,手动关联一定要想着怎样去界定你要获取的内容,左边界右边界一定要对,然后尽可能的在Filters里面缩小范围就可以。

    手动进行关联方法二:在Tree View里面自动建立关联

    假设要获取的内容在 “www.cnblogs.com“的response body里面。

    方法:

    1. 切换到 Tree View视图。

    选择 View –> Tree View即可。

    2. 选中 Url: www.cnblogs.com

    3. 点击HTTP View 查看该链接的 HTTP视图。

    4. 点击Response Body查看该请求返回的响应结果。

    5. 用鼠标选中要获取的内容,然后点击右键,选择Create Correlation,点击“是”。

    image

    6. 切换回脚本视图查看关联是否添加成功。

    选择 View –> Script View即可。

    //Correlation comment - Do not change!Original value='鍗氬�鍥?- 寮€鍙戣€呯殑缃戜笂瀹跺洯' Name ='CorrelationParameter_1'
    
        web_reg_save_param_ex(
            "ParamName=CorrelationParameter_1",
            "LB=title>",
            "RB=</title",
            SEARCH_FILTERS,
            "Scope=Body",
            "RequestUrl=*/www.cnblogs.com/*",
            LAST);

    备注

    1. 转义字符

    左右边界含有特殊字符时,需要用到转义字符“”。

    常见的特殊字符表示如下:

     退格
    f 换页
    
     换行
    
     回车
    	 水平制表
    v 垂直制表
    \ 反斜杠
    ? 问号字符
    ' 单引号字符
    " 双引号字符
    0 空字符

    看下面的例子,我需要获取imgId的值:

    image

    关联脚本如下:

        web_reg_save_param_ex(
            "ParamName=image_id_value",
            "LB=imgId":"",
            "RB=",",
            SEARCH_FILTERS,
            "Scope=Body",
            "RequestUrl=*/sendimagecode*",
            LAST);

    2. 如何定位需要关联的地方

    可以使用LoadRunner自带的工具 WinDiff来比较脚本的不同,进而找出需要进行关联的地方。

    1) 录制两遍脚本,假设分别为 s1 和 s2

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

    打开s2,打开 tool –> compare with Script,选择s1。

    两个脚本不同的地方 WinDiff 会进行标黄处理。

    3)一般两个脚本不同的地方都需要进行关联处理。

    lr_think_time表示等待时间,这个不同的话不用管。

    image

    4)找到产生该不同文字是在哪个request返回的response里面,我们在该resquest前面添加关联函数即可。

  • 相关阅读:
    JS 数组总结
    JS 数据类型及其判断
    CSS 优先级
    正则表达式及其使用例子
    常见的图片格式
    React 箭头函数的使用
    手动搭建 react+webpack 开发环境
    JS 函数参数及其传递
    JS 中的 this 指向问题
    JS 中函数的 length 属性
  • 原文地址:https://www.cnblogs.com/miniren/p/6894440.html
Copyright © 2011-2022 走看看