一直在使用LR,对于Html_based script和Url-based script 两种录制方式之间,要如何选择,仍是一知半解。最近测试时遇到同样的业务功能,两种录制方式的脚本,单次执行时间差别很大。html的20多秒,而URL的是3秒。疑问?

Web(HTTP/HTML)协议

录制的是HTTP交互和服务器响应。
Web(HTTP/HTML)可以使用两种方式录制:HTML-based和URL-based。
Web(HTTP/HTML)不直接支持JavaScript,而是把它作为页面资源存储。

Web(Click and Script)协议

对于大部分应用程序,包括那些包含JavaScript的程序,可以使用Web(Click and Script)虚拟用户。对于PeopleSoft Enterprise和Oracle Web Application 11i虚拟用户,也推荐使用这种录制方式,有兴趣可以尝试一下。

对于那些使用applets和vbscript的浏览器应用 程序或非浏览器程序,推荐使用Web(HTTP/HTML)虚拟用户。

Html_based script

  是lr的默认模式,也就是通常说的高层次模式,一般优先选择这种模式这种模式录制的脚本相对简短,便于阅读。它把类属一个页面的请求放在一个web_url中。为每个用户请求生成单独的函数。

  HTML-based 方式对每个页面录制形成一条语句,对LoadRunner来说,在该模式下,访问一个页面,首先会与服务器之间建立一个连接获取页面的内容,然后从页面中分解得到其他的元素(component),然后建立几个连接分别获取相应的元素。

Url-based script

  即通常所说的低层次录制模式,这种模式录制的脚本相对长,不利于阅读,但脚本更直观,它把客户端向服务器端发送的每一个请求都放在一个单独的web_url中,即一个请求对应一个web_url,页面和图片分别生成对应的web_url,相对Html_based script模式把类属一个页面的请求放在一个web_url中的方式,Url-based script模式的脚本更直观。可以捕获所有作为用户操作的结果发送到服务器的HTTP请求,然后一一记录下来。可以捕获非HTML应用程序,例如小程序和非浏览器应用程序。

  URL-based 方式将每条客户端发出的请求录制成一条语句,对LoadRunner来说,在该模式下,一条语句只建立一个到服务器的连接,LoadRunner提供了web_concurrent_start和web_concurrent_end函数模拟的工作方式。

如何从脚本辨别使用哪种模式录制?

  可以从脚本web_url中“mode”的值区分,Html_based script模式下mode的值为“html”,Url-based script模式下mode的值为“http”。从录制时可看出,web_submit_form、web_link一定是HTML模式,web_custom_request一定是URL模式。

web_url,web_submit_data函数两种方式都可能,此时只能通过mode的值来判断。

The Recording Level or Mode for Web scripts. The possible values are: 

HTML level: Instructs VuGen to record HTML actions intuitively, in the context of the current Web page. The actions are recorded as URL steps (web_url), link steps (web_link), image steps (web_image), and form submission steps (web_submit_form). VuGen records only the HTTP requests that return HTML pages, but not scripts or applications. 

HTTP level: Instructs VuGen to record all requests from the server as URL steps (web_url statements). It does not generate the web_link, web_image, or web_submit_form functions. This method is more scalable, but less intuitive when reading a generated script. 

In older versions, the HTTP level is called NORESOURCE. 

html录制可选择项:

两种脚本类型:

1、默认的项,选择描述用户行为的脚本。

web_link是提供一个连接,提供了连接的名称和需要单击的超链接名称,点击就进去,如果链接地址不存在,会出错。模拟用户单击超链接的操作。如果出错了可以选择web_url方式。

2、仅包含明确的URL脚本。

web_url方式不考虑用户做了什么,只在于客户端发送了什么请求,只在于系统做了什么请求。web_url里边是需要访问的超链接地址。

URL录制时可选择项:

两种录制方式优点对比:

)HTML 录制

优点:减少了捕获动态值的需要。

(1)资源从内存中取出且在回放时下载。因此,脚本比其他的录制方式更小且更容易阅读。

(2)由于只有较少的硬编码脚本,因此只有较少的动态数值需要关联。

(3)可以插入图片检查之类的语句以检查结果是否正确。

(4)因为HTML模式回放时需要积极地解析返回的信息,因此它可能会比其他录制模式更加占用资源。然而,HTML模式record/replay有相当大的改善,使得差异最小化且微不足道。

(5)HMTL录制级别会为每一个HTML用户动作产生一个单独的步骤。而且HTML方式产生的脚本非常简洁和直述,易于阅读。

)URL 录制

优点:脚本具有灵活性和可量测性。

(1)脚本回放过程中,不再搜索内存和Cache。

(2)脚本更具可扩展性。支持页面上的Java Applets和ActiveX对象。

(3)URL录制级别把对服务器每个对象的请求,都录制成一个单独的请求。对业务过程有更好的控制。

 如何选择两种模式?

1、基于浏览器的应用程序推荐使用HTML-Based Script。

2、不是基于浏览器的应用程序推荐使用URL-Based Script。

3、如果基于浏览器的应用程序中包含了Java Script,applet、vbscript脚本与等并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based Script方式录制。

4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based Script方式录制。

5、录制过程中不要使用浏览器的“后退”功能,LoadRunner对其支持不太好。

脚本录制过程中,可以根据需要在HTML级别和URL级别之间灵活地切换,以获得最佳的效果。

参考资料:

LoadRunner 技巧之HTML 与 URL两种录制模式分析

LR 两种html与url录制的更多相关文章

  1. reverse(两种反向生成url django原生形式和rest_framework中版本的形式)

    reverse(两种反向生成url django原生形式和rest_framework中版本的形式) views.py from django.shortcuts import render,Http ...

  2. LR 两种录制:html与url

    一直在使用LR,对于Html_based script和Url-based script 两种录制方式之间,要如何选择,仍是一知半解.最近测试时遇到同样的业务功能,两种录制方式的脚本,单次执行时间差别 ...

  3. LR两种录制模式的区别

    loadrunner的录制模式分为如下两种录制模式: HTML-based script,也称为高层录制: URL-based script,也称为底层录制. 两种录制模式的区别:1)脚本不同:高层录 ...

  4. 介绍两种风格的URL

    两种风格的“动态资源”——统一资源定位符(Uniform Resource Lactor,URL) 当前互联网上主要有两种主要风格的URL: 第一种直接在URL中知名文件(比如xxx.php,xxx. ...

  5. 链接拼接的方法(用于解决同一个脚本返回两种不同的url链接的问题)

    实例一: 上图所示 爬虫返回的链接有一部分带有http前缀,有一部分没有,且也不知道具体哪些链接会出现没有前缀的情况 后面如果通过返回链接进行再次访问,那么肯定会出现报错的问题 思路: 判断 返回值内 ...

  6. 分页传参数的两种形式,url正则 ?id=1

    目的: 打开http://127.0.0.1:8000/home    点击查看详情转到 http://127.0.0.1:8000/detail-1-1.html实现查看具体信息 一,利用url路由 ...

  7. flask开启debug模式的两种方法、加载配置文件的两种方法、URL传参的四种方法

    from flask import Flask app = Flask(__name__) # app.config.update(DEBUG=True)#开启debug模式 #加载配置文件方法一 # ...

  8. 浅析使用vue-router实现前端路由的两种方式

    关于vue-router 由于最近的项目中一直在使用vue,所以前端路由方案也是使用的官方路由vue-router,之前在angularJS项目中也是用过UI-router,感觉大同小异,不过很显然v ...

  9. 转 LoadRunner 技巧之THML 与 URL两种录制模式分析

    Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based ...

随机推荐

  1. Git版本管理工具常用命令说明

    Git常用命令 $ touch README.md 创建一个README.md文件 $ git init  创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文 ...

  2. 【Git】Git pull 强制覆盖本地文件

    git fetch --all  git reset --hard origin/master git pull 备注: git fetch 只是下载远程的库的内容,不做任何的合并 git reset ...

  3. vue中$router.push打开新窗口

    在vue中使用 this.$router.push({ path:  '/home' }) 默认是替代本窗口 如果想新开一个窗口,可以使用下面的方式: let routeData = this.$ro ...

  4. rem实现自适应

    总结一下,rem实现自适应:用rem代替px,配合媒体查询设置font-size:n%. 首先,px是死的.若一律用px,那就会大的显得小,小的屏幕显得大.其次,rem是活的,通过设置字体大小可以引起 ...

  5. gear gym 思维题

    题目:https://vj.69fa.cn/1fc993e7e0e1e6fa7ce4640b8d46ef8d?v=1552762626 这个题目,之前有一点思路,但是呢,后来又不知道怎么去执行,然后就 ...

  6. Pandas 拼接操作 数据处理

    数据分析 生成器 迭代器 装饰器 (两层传参) 单例模式() ios七层 io多路 数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 pandas的拼接操作 p ...

  7. Nginx+Keepalived双机热备

    一.Keepalived Keepalived是保证集群高可用的服务软件.网络中优先级高的节点为master负责响应VIP的ARP包,将VIP和MAC地址映射关系告诉网络内其他主机,还会以多播的形式向 ...

  8. I/O 机制的介绍(Linux 中直接 I/O 机制的介绍)

    IO连接的建立方式 1.缓存IO.流式IO: 2.映射IO.块式IO: 3.直接IO. IO的方式: 同步.异步.定时刷新: MMAP与内核空间 mmap使用共享用户空间与内核空间实现: 直接 I/O ...

  9. [SDOi2012]吊灯

    嘟嘟嘟 这题想了半天,搞出了一个\(O(10 * d * n)\)(\(d\)为\(n\)的约数个数)的贪心算法,就是能在子树内匹配就在子树内匹配,否则把没匹配的都交给父亲,看父亲能否匹配.交上去开了 ...

  10. HashMap 1.8

    1.重要参数 和1.7中的相同,不在赘述.变化之处在于table不在是Entry类型而是Node类型,即1.8中拉链法中的节点类型变为Node.但其实结构并没有发生很大的变化,1.8中的HashMap ...