LR 两种html与url录制
一直在使用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录制的更多相关文章
- reverse(两种反向生成url django原生形式和rest_framework中版本的形式)
reverse(两种反向生成url django原生形式和rest_framework中版本的形式) views.py from django.shortcuts import render,Http ...
- LR 两种录制:html与url
一直在使用LR,对于Html_based script和Url-based script 两种录制方式之间,要如何选择,仍是一知半解.最近测试时遇到同样的业务功能,两种录制方式的脚本,单次执行时间差别 ...
- LR两种录制模式的区别
loadrunner的录制模式分为如下两种录制模式: HTML-based script,也称为高层录制: URL-based script,也称为底层录制. 两种录制模式的区别:1)脚本不同:高层录 ...
- 介绍两种风格的URL
两种风格的“动态资源”——统一资源定位符(Uniform Resource Lactor,URL) 当前互联网上主要有两种主要风格的URL: 第一种直接在URL中知名文件(比如xxx.php,xxx. ...
- 链接拼接的方法(用于解决同一个脚本返回两种不同的url链接的问题)
实例一: 上图所示 爬虫返回的链接有一部分带有http前缀,有一部分没有,且也不知道具体哪些链接会出现没有前缀的情况 后面如果通过返回链接进行再次访问,那么肯定会出现报错的问题 思路: 判断 返回值内 ...
- 分页传参数的两种形式,url正则 ?id=1
目的: 打开http://127.0.0.1:8000/home 点击查看详情转到 http://127.0.0.1:8000/detail-1-1.html实现查看具体信息 一,利用url路由 ...
- flask开启debug模式的两种方法、加载配置文件的两种方法、URL传参的四种方法
from flask import Flask app = Flask(__name__) # app.config.update(DEBUG=True)#开启debug模式 #加载配置文件方法一 # ...
- 浅析使用vue-router实现前端路由的两种方式
关于vue-router 由于最近的项目中一直在使用vue,所以前端路由方案也是使用的官方路由vue-router,之前在angularJS项目中也是用过UI-router,感觉大同小异,不过很显然v ...
- 转 LoadRunner 技巧之THML 与 URL两种录制模式分析
Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based ...
随机推荐
- June 9. 2018, Week 23rd, Saturday
I know nothing except the fact of my ignorance. 除了自己的无知,我一无所知. Believe it or not, true wisdom exists ...
- HTTP1.0 、1.1
网上有很多资料说明这个,但都很长的,觉得东西太多也记不住,就记点东西,权当笔记. HTTP 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一 ...
- Cobalt Strike 服务器搭建及使用
Cobalt Strike使用中的一些坑(一) http://www.cnblogs.com/miaodaren/articles/7829793.html cobaltstrike3.8服务器搭建及 ...
- 《Java大学教程》—第8章 通过继承扩展类
8.2 继承(inheritance):继承是指在类之间共享属性和方法.继承关系是一种层次关系.在继承关系中位于顶部的类称为超类(或基类),位于下面的类称为子类(或派生类).类型转换(type ...
- ES5-ES6-ES7_严格模式
运行模式 正常(混杂)模式与严格模式,除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode) 顾名思义,这种模式使得Javascript在 ...
- 兼容Android 和 ios JavaScript copy paste
<!DOCTYPE html> <html> <head> <title>关于我们Frame</title> <meta charse ...
- PHP与Nginx之间的运行机制以及原理
一.普及Nginx与Php-fpm相关知识点 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服 ...
- 获取数值型数组的平均值(分别使用增强for循环和普通for循环)
package com.Summer_0419.cn; /** * @author Summer * 获取数值型数组的平均值 */ public class Test_Method14 { publi ...
- 根据成绩输出对应的等级(使用if多分支和switch语句分别实现)
根据成绩输出对应的等级,使用if多分支和switch语句分别实现. a) A级 [90,100] b) B级 [80,90) c) C级 [70, ...
- linux内存源码分析 - 内存压缩(实现流程)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 本文章最好结合linux内存管理源码分析 - 页框分配器与linux内存源码分析 -伙伴系统(初始化和申请 ...