• 性能测试_LR11_关联


    关联:

    关联函数:web_reg_save_param

    1.为什么需要关联。

    2.关联的基本用法是哪些。

    3.关联函数要去查找哪一个请求的响应要明确。     

    关联的核心原理:

    1.本质:查找。

    2.从哪里查找:从响应当中查找。

    3.如何查找:通过左右边界查找。

    注意点:

    1.在请求的前面插入关联函数。因为LR的关联功能是预处理的一个函数,所以一定要放在被查找的请求前面,而且是紧挨着的前面。

    2.插入关联函数后,要给双引号进行转义。

    操作:

    1.插入步骤。Insert-New Step-Services-web_reg_save_param。

    2.点击“OK”,打开这个函数的编辑页面。

    Parameter name:参数名称。

    Left Boundary:左边界。尽可能越短越好,这样比对速度快。但要保证唯一性。

    Right Boundary:右边界。

    3.在post请求中修改参数。

    1.高亮显示的参数表示在参数列表中存在的参数名称,属于静态参数;没有高亮显示的表示动态参数,是根据脚本运行。

    关联函数通配符:

    Match case:勾上表示支持通配符,不勾选表示不支持。

    Use # for any digit:用 # 号来作为任何数字的通配符。默认表示为0-9,如果是两位数字(例:60)就需要 '##' 两个#号来代替。

    Use ^ as a wildcard for : 用 ^ 的符合表示任何一个字符。all:表示所有的ASCII码、lowercase:小写字母、uppercase:大写字母。

    Binary data:二进制数据。(图形文件)

    Relative Frame ID:针对查找的响应里面包含框架页面的一些响应。(框架布局,例:上面是A页面菜单部门,下面是B页面正文部门,左边是C页面导航)

    Not Found:设置左右边界查找没有找到任何结果,处理方式默认是直接报错,也可以设置为只报一个警告。报错的时候会停止运行脚本,警告可以继续执行脚本不会终断。

    Search in:关联我们所查找的内容。ALL:默认是查找响应的全部内容、Body:也可以默认查找响应的正文、Headers:响应的头、NoResource:非资源类的。就是文本类的。

    Save Length:保存长度,自动剪切。比如查询出100个字符,我们只需要50字符。它会自动剪切长度。

    Save Offset :从哪里开始剪切,配合Save Length使用。(例:Save Length设置50字符,Save Offset设置0,那就从第0个字符开始,0-50;如果Save Offset设置10,那就从第10个字符开始截取,就是10-60字符串)。

    Ignore Redirections:忽略重定向。

    Instance:默认不勾选,输出查找的第一个结果。勾选后可编辑序号,顺序输出序号所对应的结果。

    ☆关联数组:(场景:随机的选择一个板块实现发帖)。

    第一步:获取所有板块的编号。想获取关联的所有查询结果,可以修改instance选项,修改为:ALL。

      1.Ord变为ALL,就变为一个关联数组了。输出结果就是一个参数数组,参数数组里面存放了很多值。

    2.如何获取到参数数组里面的值。例:lr_output_message(lr_eval_string("{test_1}"));  (获取到参数数组里面第一个值);lr_output_message(lr_eval_string("{test_2}"));  (获取到参数数组里面第二个值)。

     

    第二步:关联数组的三个函数:lr_paramarr_len(返回的是关联数组的个数,获取到数组的长度)、lr_paramarr_idx(输出所关联的值。获取到指定索引所对应的值)、lr_paramarr_random(随机的获取关联数组中的一个值)。

    1.循环的输出:

    注意点:("test"):test已经不是一个参数了,所以不用加{}。

    i<lr_paramarr_len("test"):因为我们不知道有多少个板块,所以我们用这个函数来明确有多少个。

    lr_paramarr_idx:调用第一个参数,参数数组的名称(test),第二个索引号(i)。

    lr_paramarr_random:随机获取值。

    例子:

    int i;

    for (i=1;i<lr_paramarr_len("test");i++) {
    lr_output_message(lr_paramarr_idx("test",i));

    // lr_output_message(lr_paramarr_random("test"));
    }

     //通过上述例子可以把所有板块都找出来。找完之后就可以获取它的值。

    第三步:如何把值用到脚本中变为可用的参数。// lr_save_string(保存一个参数。后面接两个参数,第一个是参数值,第二个是参数名称。);// lr_eval_string(获取一个参数)。

    例:lr_save_string(lr_paramarr_random("test"),"testid");   值:lr_paramarr_random("test")   名称:testid

    lr_save_string动态的生成了一个参数,这个参数名称叫testid,参数值对应的就是lr_paramarr_random("test")表达式,就是上面随机获取的,这个表达式赋给testid,testid就是一个标准的参数。然后在web_submit_data请求中直接引用{testid}。

     总结:

    通过设定左右边界,发现响应里面通过左右边界能找出一大堆的值,很多值的左右边界是一样的。通过设定Ord=ALL,形成一个关联数组。获取关联数组里面的值,获取到的值用在脚本中实现场景。

  • 相关阅读:
    js禁止页面回退,刷新,右键代码
    asp.net网站中的Gridview循环判断数据是否被选中
    Gridview中同时选中并删除多个数据
    asp.net中在后台更换控件图片的代码
    关于gcd的8题
    flash AIR 通过BitmapData生成图片到android Camera相册
    flash AIR 通过BitmapData生成图片到本地
    C的随机数
    xcode svn设置事项
    拒绝session丢失 利用DIV层实现对模态窗口的模拟
  • 原文地址:https://www.cnblogs.com/jswx/p/9869756.html
Copyright © 2020-2023  润新知