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-based\URL -based script: html级别:根据用户行为将当前页面产生一个步骤。只录制返回html页面的http请求(不录script和applications);直观、简洁。 http级别:录制所有请求,以web_url方法、提交表单web_submit_data,没有web_link\web_image\web_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\notfound), 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、Noresource、ALL(默认) |
|
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_url\web_form_submit_data)中Mode还是 HTML!!只有在URL级别录制时,web_url\web_form_submit_data请求中Mode才是 HTTP。原以为是web_url\web_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_find\web_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_data\web_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属性 |
不依赖前后内容; 处理无条件、无关上下文的表单提交; |
特点 |
易用、有的关联不需要手动设置; |
更稳定、可控 |
转载于:https://www.cnblogs.com/stay-sober/p/4137635.html
lr常用的几个函数(不完整)相关推荐
- LR常用函数以及参数化设置
LR常用函数以及参数化设置 web_reg_save_param 关联常用函数,可以根据自己需要,截取请求返回的数据,保存到定义的参数中去. web_reg_save_param("log& ...
- sql常用语法命令及函数_SQL右连接命令:语法示例
sql常用语法命令及函数 For this guide we'll discuss the SQL RIGHT JOIN. 对于本指南,我们将讨论SQL RIGHT JOIN. 正确加入 (Right ...
- 讨论常用的 MySQL 日期函数。
讨论常用的 MySQL 日期函数. 日期函数和运算符用于日期和时间类型的数据进行操作并返回一个结果.以下是 MySQL 中常见的日期函数和运算符: ADDDATE().DATE_ADD(),为日期时间 ...
- saltstack常用的模块及函数
saltstack常用的模块及函数 SaltStack模块介绍 查看指定模块module的用法 一个命令执行多个模块 network模块 network.calc_net network.connec ...
- python数据处理常用函数_Python中常用操作字符串的函数与方法总结
Python中常用操作字符串的函数与方法总结 这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下 例如这样一个字符串 Pyth ...
- php文件有哪几种,PHP常用的文件操作函数有哪些
PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...
- python常用函数-Python小白必备的8个最常用的内置函数(推荐)
Python给我们内置了大量功能函数,官方文档上列出了69个,有些是我们是平时开发中经常遇到的,也有一些函数很少被用到,这里列举被开发者使用最频繁的8个函数以及他们的详细用法 print() prin ...
- python常用内置函数总结-Python学习教程之常用的内置函数大全
前言 内置函数,一般都是因为使用比较频繁或是元操作,所以通过内置函数的形式提供出来.在Python中,python给我们提供了很多已经定义好的函数,这里列出常用的内置函数,分享出来供大家参考学习,下面 ...
- [python]开发IC utility 一些常用的方法和函数和语法规则
文章目录 字符串的replace 字符串的split 字符串的strip 循环for in 判断语句中的and not re.search与re.match 合并元素为一个字符串 判断提供的path是 ...
最新文章
- luogu P5304 [GXOI/GZOI2019]旅行者
- Asp.net Core Jenkins Docker 实现一键化部署
- 在Apache Camel中使用Spring数据
- 不用下载软件,mac自带丰富快捷键截图Ctrl+shift+4
- js错误: XXX变量 is not a function
- 四川师范大学计算机科学学院官网,四川师范大学
- 麒麟LINUX(飞腾ARM)更新软件源
- 字体arial不支持样式regular的解决方法
- 【数学建模】排队论(最优化)
- 工具类软件操作手册_小规模纳税人开票前完成开票软件升级,关于1%税率的发票...
- oracle增删改查基本语句
- 《这里是中国》精美词句摘抄
- 打鱼晒网C语言程序,C语言打鱼还是晒网问题
- mysql查看分片键
- php批量解密decoder,IonCube v8.3 Decoder解密工具
- 为什么社区团购需要小程序?
- 小程序的大于小于等于的写法
- Linux命令行下修改文件或文件夹名
- 2020年江苏中考数学能用计算机吗,2020年【中考数学】真题及模拟:几何探究型问题(原卷版)(江苏专用).docx...
- 引入video.js并使用
热门文章
- php空间 数据库设计,php进阶之数据库设计/ 选择合适的表引擎
- linux下在线新增大文件系统划分,linux - 文件系统(fdisk)
- nginx 没有cookie_Nginx入门学习(1):一些概念
- 数据统计作业0429_因子分析/FA
- 因限制游戏驿站等WSB概念股交易 Robinhood遭散户集体诉讼
- Bitfinex将向纽约总检察长办公室移交“被指控 8.5 亿美元资金挪用案”相关文件
- SAP License:2021年如何做一个被人喜欢的SAP顾问?
- SAP自学指南:案例公司的特点
- SAP License:一位在ERP行业从业九年的经验总结
- SAP License:共享服务的今天和明天