• lr常用的几个函数(不完整)


     

    web_url

    作用:加载get请求的页面;

    返回结果:int   LR_PASS (0)|LR_FAIL (1);

    不需要上下文;

    只有在URL-based script、

    HTML-based script-à包含显式URL录制方式下有。

    可以模拟下载

    参数名

    描述

    StepName

    第一个为这步的名称;【必须】

    URL

    要打开的url;【必须】

    属性列表

    TargetFrame

    对应页面上target属性,页面在哪打开:_blank新页面、_self当前页等;

    Resource

    是否为资源,0非资源、1资源;如http级别中加载图片、js、css、swf

    "URL=http://192.168.0.99/bbsutf8/static/image/common/forum.gif",

    "Resource=1",

    "RecContentType=image/gif",

    RecContentType

    录制时响应内容的content–type 。MIME类型

    Referer

    对应请求的Referer,从哪个页面链接过来

    Snapshot

    此步骤对应的快照文件,做关联用

    Mode

    Web录制的等级, HTML-basedURL -based script:

    html级别:根据用户行为将当前页面产生一个步骤。只录制返回html页面的http请求(不录script和applications);直观、简洁。

    http级别:录制所有请求,以web_url方法、提交表单web_submit_data,没有web_linkweb_imageweb_submit_form;不同请求分开的。可扩展、不直观。

    UserAgent

    执行此步的组件,而非浏览器

    资源列表

    设置了Non html-generate elements->Record within the current script step,会有资源的列表,以EXTRARES为分隔。

    非系统整体性能测试,要删掉

    EXTRARES                                                               "Url=static/image/common/user_online.gif", ENDITEM,

    LAST

    参数部分结束的标志;【必须】

    web_submit_data

    作用:处理无条件、无关上下文的表单提交

    生成表单的get、post请求

    返回结果:int  LR_PASS (0)|LR_FAIL (1);

    只有在URL-based script、

    HTML-based script-à只包含显式URL录制方式下有。

    基于用户行为的方式 不能生成web_submit_form时也会生成此方法;

    参数名

    描述

    StepName

    第一个为这步的名称【必须】

    Action

    同form的action属性,向何处发送表单数据。【必须】

    参数列表

    Method

    表单提交方式

    EncType

    对表单数据进行MIME编码类型。指定请求头“Content-Type”。

    (不是URL-encoding就是multi-part[单个消息头、多个消息体])

    "EncType=application/x–www–form–urlencoded"(默认|所有字符进行编码;但不能文件上传)

    "EncType=multipart/form–data"(不编码|2进制|可上传文件)

    "EncType=" (空,请求头中就没有Content–Type头)

    EncType> web_add_[auto_]header for "Content–Type"

    未指定EncType、POST请求:application/x-www-form-urlencoded

    不是post请求,请求头中就没有Content–Type头

    EncodeAtSign

    是否使用 ASCII 值对符号“@”编码。YES|NO

    TargetFrame

    RecContentType

    Referer

    Mode

    UserAgent

    Snapshot

    数据列表

    包含hidden域;

    应用提交表单的数据编码规则;

    加密:EncryptedValue=  ||  lr_decrypt("”)

    ITEMDATA

    属性部分和数据列表的分隔(java vuser中无)

    Name

    表单域域名

    Value

    请求数据的参数值

    File

    是否为文件

    Content-Type

    只应用于条目,上传文件

    FilePath

    文件上传路径

    ContentTransferEncoding

    "Name=File0          "Value=E:\a\Elinor.htm","File=yes",         "ContentType=text/html",       FilePath=Elinor.txt",        "ContentTransferEncoding=html/text",     ENDITEM,

    资源列表

    EXTRARES分隔

    LAST

    参数部分结束的标志【必须】

             

    web_submit_form

    作用: 提交表单

    返回结果:int   0|大于0;

    仅当有前一步操作

    HTML级别

    以录制时数据部分区别表单

    当不能确定时,使用action属性区分,还不能确定时用 Ordinal

    参数名

    描述

    StepName

    第一个为这步的名称【必须】

    属性列表

    Action

    Frame

    TargetFrame,

    ResourceByteLimit,

    UserAgent,

    Ordinal.

    Snapshot

    隐藏的数据部分???

    STARTHIDDENS,

     "name=n1", "value=v1", ENDITEM,

    ENDHIDDENS,

    数据列表

    ITEMDATA,

    "name=n1", "value=v1", ENDITEM,

    资源列表

    EXTRARES分隔

    LAST

    参数部分结束的标志;【必须】

    web_reg_find

    作用: 注册 在下一个响应到的html页面中查找文本

    返回结果:int  LR_PASS (0)|LR_FAIL (1);

    HTML-based、URL-based

    通过查找预期的文本,确认是否返回了想要的页面;文本出现次数的计数。

    只注册、不执行查找。返回的仅为是否注册成功,而不是是否查找成功。

    不能查找前缀后缀;

    在缓冲之前已注册,从缓存查找,更高效、高性能。

    使用web_global_verification全部查找,从后面的Action functions,不仅是紧挨着的。

    一般是请求之前,但不一定在这请求之前,放这不行,往前放。

    响应返回的东西不一定在html中???

    参数名

    描述

    Text

    非空、以null结尾的字符串;Text Flags用来自定义(匹配的大小写)

    非指明text用TextPfx(前)、TextSfx(后)。【必须】

    Search

    查找范围:Headers(响应头)、Body(响应体(默认))、Noresource(html body)、All。

    SaveCount

    查找结果出现几次,保存在参数中

    当使用此参数时,Fail参数未使用,找不到也不会返回fail。0时未找到。

    同时使用,指定Fail选项:未找到,0、fail。只有当运行时设置为 Continue on error时,有用。

    Fail

    "Found" 、 "NotFound". 默认 NotFound.

    当Found使用找到多个时,每处一个error,超过的最大error数后,记录info log

    最大的错误数在运行时设置- > Preferences > Advanced Options

    ID

    此步相关的log的标识

    RelFrameId

    相关的frame ID

    LAST

    参数部分结束的标志;【必须】

    web_find

    (deprecated)

    作用:从html页面找指定的字符串。

    返回值:int  LR_PASS (0) | LR_FAIL (1)

    HTML-based

    只有在HTML请求完成后查找,执行时间比web_reg_find慢

    参数

    描述

    StepName

    第一个为此步的名称

    列表

    Frame, expect(found otfound), Matchcase(大小写), repeat(找到第一处后继续), report(显示结果success、failure、always), onfailure(失败后中止abort)

    RightOf, LeftOf

    What

    What=stringxyz

    LAST

    参数部分结束的标志;【必须】

    web_reg_save_param

    作用:注册 从响应中找数据并保存为参数。

    返回结果:int  LR_PASS (0)|LR_FAIL (1);

    好处:简化、优化脚本;动态数据;保存唯一的数据。用一步结果作为另一步的输入。

    在执行下一个action function之后,才处理。

    只有在Recording Options中设置了Enable correlation during recording才被录制到;URL–based HTML–based recording mode à the A script containing explicit URLs only (待实验???)

    不支持内嵌边界;{a{b{c} 边界{ },取c(左右边界最近、ORD=1)

    确认边界:尽量查htmlbody的内容,页面中显著的地方

    参数名

    描述

    ParamName

    要存放动态数据的参数名【必须】

    Convert

    HTML_TO_URL| HTML_TO_TEXT

    IgnoreRedirections

    忽略重定向响应300—303 307。默认NO

    LB

    区分大小写、不支持正则、可Text Flags;不指定取头【必须】

    NOTFOUND

    未找到、为空时 的处理:error(默认) warning(可继续执行)

    ORD

    位置顺序、默认1,ALL的话会保存为数组,_1\_2;TotalNumberOfMatches=atoi(lr_eval_string("{A_count}"))

    RB

    不指定取尾【必须】

    RelFrameID

    页面的Frame id

    SaveLen

    -1(默认)

    SaveOffset

    0(默认)非负

    Search

    查找范围:Headers、Body、NoresourceALL(默认)

    LAST

    参数部分结束的标志;【必须】

         

    lr_start_transaction

    作用:事务开始

    返回结果:int   1|-1(名字非法);

    事务原子性;有头有尾;成对出现

    可嵌套,但

    参数名

    描述

    transaction_name

    事务名,不要有.  【必须】

    lr_end_transaction

    作用:事务结束

    返回结果:int  1|-1(名字非法前没有对应事务开始);;

    LR_PASS| LR_FAIL| LR_STOP

    LR_AUTO;在事务结束之前,可设置默认值(多次设置 最后执行的有效)

    参数名

    描述

    事务名

    已存在是事务的名称【必须】

    看API时遇到的其他内容

    Action Functions

    web_custom_request

    生成自定义的:http支持的、任何方式的HTTP请求

    web_image

    模拟鼠标点击图片

    web_link

    模拟鼠标点击链接

    web_submit_data

    处理无条件、上下文无关的表单提交

    web_submit_form

    模拟表单提交

    web_url

    加载指定 URL.

    Service Functions  对页面无影响,有的会覆盖runtime setting的设置。

    遇到的其他方法(待看)

    web_custom_request

    lr_rendezvous

    web_link

    lr_set_transaction_status

     web_create_html_param

    web_reg_add_cookie()#从下面请求返回的web page中,找特定string,找到了就add cookies。

      web_reg_add_cookie ("client_id=RosingsPark127B; path=/; expires=Wednesday, 09–Nov–2011 23:12:40 GMT; domain=www.pemberley.com", "Text=Darcy");

    出现的问题,及解决  

    问题1:

           /*search for header,从title找帖子标题---找不到*/

           web_reg_find("Search=Headers",

                  "Text=<title>{subject} - ",

                  LAST);

           查找时设置了查找范围 以为是从html的 head 找。其实是从响应头里找的。

    问题2:将web_reg_find查找登录后的用户名,放在了登录请求前,实际是在登录后重新加载时才出现的。

    问题3:使用中文做检查点,有的能检查到,检查不到时 复制乱码了的中文做检查,能检查到。中文做检查点-不靠谱。

    问题4:设置关联时,使用的边界未结合页面显示,导致是从js脚本中取到的关联,尽量使用比较显眼的地方 做关联。从firebug看是整理过的,要看页面源码。

    问题5:把一个完整的业务都放进了事务,应考虑事务的原子性,((不要集合点、思考时间、检查点、逻辑判断、关联,只放要考察的请求))。

    问题6:

    设置关联的步骤,第1种:两次脚本对比找不一样的值,在生成日志搜这值,找到第一个请求。在树视图里,找这请求,从响应体里找边界,在这请求前写关联。现在这种:了解脚本中请求要用到的参数,确定关联项,在当前页源代码中找边界,在这个请求前一请求前写关联。(技巧:hidde域、不规则的;边界最好选页面中明显的地方、html body里的;)

    问题7:

    1.声明了参数保存了 web_reg_find的结果,但是这个返回结果 只是注册的结果,并不是找到没找到的结果。应改用其他步骤的返回值。

    2.Web_reg_find是在得到下面一步的响应后,才处理查找结果的。所以要把判断放在下一步后面。

           loginstatus=

                  web_reg_find("Text={uname}",

                  LAST);

          

           if(loginstatus==0){

                  lr_output_message("Login successfully :%s ",lr_eval_string("{uname}"));

           }

           else{

                  lr_error_message("Login failure :%s",lr_eval_string("{uname}"));

           }

    问题8:原来脚本中,应用了很多参数化,(做练习可以),但是实际中尽量少用参数化,减少不必要的消耗。查看参数返回值,可以设置log设置。

    问题9:检查脚本是否运行成功,运行没有报错,看log,实际操作结果(页面检查、数据库检查)、检查点加的不对,不一定会报错,比如有了SaveCount时,这个参数值是0,检查点就不报错。

    问题10:用了html级别的录制—>显式的url方式,在请求(web_urlweb_form_submit_data)中Mode还是 HTML!!只有在URL级别录制时,web_urlweb_form_submit_data请求中Mode才是 HTTP。原以为是web_urlweb_submit_data的Mode都是http的,这想法是错的。

    问题11:回帖事务,因为的发帖成功的检查是在事务结束后,这样不能自定义事务,该怎么处理???

    补充:

    集合点:多个事务相同集合点策略,加同一集合点;   多个事务不同集合点策略,两个集合点。

                  不要拆脚步,复杂。

    1.vugen三个主要的设置

    ①Run-time Setting

           Internet Protocol--àPreference

                  Advanced--à Options:::

                         HTTP-request connect timeout(sec) ::HTTP请求连接超时时间

                         HTTP-request receive timeout(sec)  ::HTTP请求接收超时时间

                         Step download timeout(sec)       ::下载超时时间

                  Checks:Enable Image and text check     ::允许Vuser在回放时,通过执行web_findweb_image_check方法处理检查点。仅在HTML-based下应用,进行检查时消耗更多内存、此项默认不选中。

    ②General Options   --à Display::显示运行时视图

    ③Recording Opions

           HTTP Properties-àAdvanced-àSupport charset(UTF-8) ::设置字符集

           Network-àPort Mapping-à capture level:::Socket level data、WinINet level data

           Generalà-Recording:HTTP/HTML Level::录制级别的选择和脚本类型

     2.HTML-based script下两种方式的不同

    描述

    方法

    好处

    基于用户行为

    直接根据用户的当前操作,生成脚本的方法步骤

    web_url

    web_image、web_link

    web_submit_form

    较为直观

    匹配用户操作步骤。

    依赖前面内容

    包含显式的URLs

    录制此步骤发送的请求

    web_url的方法,录制所有的link、images、URLs;

    表单提交使用web_submit_data的方法。

    不依赖前后内容

    3.web_submit_dataweb_submit_form不同

    录制bbs为例

    web_submit_form语句属性只有Snapshot属性;

    Web_submit_data语句属性有Action、Method、TargetFrame、RecContentType、Referer、Mode;

    web_submit_form录制到了编辑框右侧的“附加选项部分”的内容。三个禁用~~~、回帖仅作者可见、回帖倒序排序

    web_submit_data录制到了表单中的隐藏域。

    为什么web_submit_data里没有右侧的附加选项部分???

    web_submit_form

    web_submit_data

    作用

    提交表单

    生成表单的get、post请求

    返回结果

      0 | 大于0;

    LR_PASS (0)  |  LR_FAIL (1);

    什么时候

    录制到

    html-based--à基于用户行为

    URL-based script、

    HTML-based script->只包含显式URL

    基于用户行为的方式 不能生成web_submit_form时也会生成此方法;

    Mode

    Mode=HTML

    html-based,Mode=HTML

    URL-based,Mode=HTTP

    从前步骤Cache中取,只提供和Cache中有差别的数据

    提交所有数据(包括隐藏域的)

    参数

    步骤名(必填)、参数列表、

    隐藏的数据(标识STARTHIDDENS、ENDHIDDENS)、

    数据列表、资源列表、

    LAST结束标识(必填)

    步骤名(必填)、Action(必填)、参数列表、

    数据列表(包含隐藏域的数据)、

    资源列表、LAST结束标识(必填)

    上下文

    相关

    仅当有前一步操作。

    以录制时数据部分区别表单

    当不能确定时,再用Action属性区分,再不行用 Ordinal属性

    不依赖前后内容;

    处理无条件、无关上下文的表单提交;

    特点

    易用、有的关联不需要手动设置;

    更稳定、可控

  • 相关阅读:
    加密与认证
    使用fiddler查看https请求
    #HTTP协议学习# (十)拓展-HTTPS协议
    #HTTP协议学习# (九)cookie
    #HTTP协议学习# (八)状态码详解
    #HTTP协议学习# (七)代理
    #HTTP协议学习# (六)缓存
    winform_使用ClickOnce生成安装程序包页面&程序发布新版本通知客户端更新
    C#_.Net Core 3.1 WebAPI_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换
    C#_.net core 3.0自定义读取.csv文件数据_解决首行不是标题的问题_Linqtocsv改进
  • 原文地址:https://www.cnblogs.com/stay-sober/p/4137635.html
Copyright © 2020-2023  润新知