LR 录制协议选择及常用函数

上一篇 / 下一篇  2014-01-15 14:31:32 / 个人分类:学习笔记2014

协议分析:

HTTPhypertext transfer Protocol,HTTP,WWW网的基础,它是一个属于应用层面向对象的协议,HTTP最初的目的是通过网络实现clientserver之间的事务处理。在HTTP中,Client在本地主机向运行于远程主机上的Server请求连接,连接成功后通过GET来访问Server端的对象(可以是网页,也可以是动态页面)。Server端在请求关闭前将请求的对象或者错误消息返回给Client,结束响应过程。

HTTP客户向服务器请求响应时,只需要传送请求方法和路径即可,请求方法主要有GET,HEAD,POST.其中GET应用最广泛。

它允许传输任意类型的数据对象。

无连接:使用了TCP,限制每次连接只处理一次请求。服务器从接受到客户端的请求,返回请求的信息后,即断开连接。

HTTP报文的结构如下:

请求行

通用头

请求头

实体头

实体主体。

HTTP请求:由三部分组成,分别是:

方法-URI-协议/版本

请求头

请求正文

HTTP请求的例子:

GET/HTTP/1.1 --------请求报文中的方法:get,/请求使用的根目录:HTTP/1.1是协议和具体的版本

Accept:text/html,application/xhtml+xml,*/*

客户端正文所能接受的内容类型,

Accept-Language:zh-CN

客户端的语言

User-Agent:Mozilla/5.0(Compatible;MSIE 9.0:WINDOWS NT 6.1; WOW64; TRIDENT/5.0)

表示客户端的信息。

Accepting-Encodeing:gzip,deflate

表示客户端接受的服务端返回的压缩数据类型(此处为动态压缩,节约网络传输花费的时间)

HOST:BBS.51TESTING.COM

请求的主机地址

Connection:Keep-Alive: 

Keep-Alive,HTTP1.1预设的功能,它使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,此功能可以避免建议或者重新建立连接。对于提供静态内容的网站,这个功能很有用。

HTTP应答

组成也分为三部分:协议状态代码描述;应答头;应答正文。

HTTP/1.1 200 OK----使用的协议为HTTP,状态成功

Server: nginx/0.8.15 -----服务器上WWW服务参数

Date:mon,12 sep 2011 07:31:31 GMT---服务器上格林威治时间

Content-type:text/html---返回的正文类型

Transfer-Encoding:chunked

Connection:keep-alive

X-powered-by:PHP/5.2.10

Expires:0

Cache-Control:private,post-check=0,pre-check=0,max-age=0

Pragma:no-cache

Vary:Accept-Encoding

Content-Encoding:gzip

Vary:Acccept-Encoding

录制脚本时的script. type基于HTML两种不同的脚本类型

一种是A script. describing user action

Web_link

是录制脚本选项时,选择a script. describing user action后才有,

用来模拟用户的点击一个超链接的行为。基本语法如下:

WEB_LINK(“测试结果显示的名称,“TEXT=需要点击的超链接名”SNAPSHOT=T4.INF”,LAST)

Snapshot后的文件表示,点击操作后的内容会被抓图保存到t4.inf中,最后的LAST,表示函数结束。

由于我们使用的中文操作系统默认编码为GB2312,lr对服务器返回的内容自动使用GB2312方式阅读,但几乎所有的中文网站现在都使用UTF-8编码,解码方式不同导致乱码出现。

可用函数Lr_convert_string_encoding(“欲转换的内容lr_enc_system_locale,lr_enc_utf8,”欲存储成的变量”)实现编码的转换

如果一个页面有多个两名的链接,web_link函数用ord=ng为分辨。如单击第二个链接,则用:

Web_link(“门户”,”Text=link”,ord=2,Last);

同名的顺序是根据HTML代码的解释顺序:从左到右,先上后下。

另外一种是:A script. containing explicit URLs only

它注重于用户在客户端发送的请求。

Web_link,web_url替代了,web_url函数的作用是实现地址请求的过程。基本语法是:

Web_url(“在测试结果中显示的名称”,”URL=需要访问的超链接地址LAST).

Web_submit_form(),函数会自动检查页面是否有表单,然后将ITEMDATA数据自动传送。

注意:页面有多个表单时无法录制得到,LR自动使用web_submit_data()函数代替

Web_submit_dataweb_submit_form,不同,它不需要前面页面的支持,它直接发送对应页面的关键数据。

 

web_concurrent_startweb_concurrent_end

可以生成并发请求。

这两个函数是在URL中标记一个页面请求的,注意:这里我说的是页面(page),并不是请求。
LR请求一个页面里,由于使用URL的方式录制,会把一个页面中的元素分成几个web函数做处理。所以,LR中实现了web_concurrent_startweb_concurrent_end

实现的作用是:从web_concurrent_start开始标记,当脚本运行到web_concurrent_start时,后续的脚本都不会立即被执行,直到web_concurrent_end出现。才把这中间的所有的脚本一起执行。
所谓并发组也是指把这一组函数一起执行起来。
如果用lr_start_transactionlr_end_transaction来替换,脚本完全可以跑通。中间的脚本是从上到下执行的,而不是一起执行的。

 说明web_concurrent_start函数是并发组开始的标记。组中所有的函数是并发执行的。并发组的结束web_concurrent_end函数。在并发组中,可以包含的函数有:web_urlweb_submit_dataweb_custom_requestweb_create_html_paramweb_create_html_param_exweb_reg_save_paramweb_add_header

web_custom_request ()

当请求比较特殊时,这个函数的作用是自定义:HTTP

TAG:

 

评分:0

我来说两句

日历

« 2024-03-13  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

我的存档

数据统计

  • 访问量: 10301
  • 日志数: 6
  • 建立时间: 2014-01-15
  • 更新时间: 2014-01-15

RSS订阅

Open Toolbar