扩展:深刻剖析VuGen脚本录制原理
LR中的VuGen组件,主要扮演一个proxy server的角色,在录制脚本时,记录下用户和服务器交互,然后自动生成脚本语言。在接下来的重放,或者大批量地加压时,模拟真实的front end user向网站发送请求,并根据服务器返回的结果,作为判断是否正确执行用户操作的依据。 难道今天能静下心来,对recording log进行了一番分析,为方便以后进行更进一步的发掘,特在此草草地作个记号,以后有机会再回头进行更新与追踪。 此部分是后续进行Web component breakdown性能分析的理论基础。
扩展:深刻剖析VuGen脚本录制原理

对上述截图的三处注释

注1:此处是用户发出唯一一条明确的请求,也可以理解为点击,只是此点击会引发后台很多见不到的点击(hits)
注2: 向服务提交一个请求,主要是借助welcome.pl对当前用户当前所处的状态进行判断,并返回不同的页面。2.1 输入:signOff = True 未登陆用户;返回:登陆界面导航栏+欢迎页面(welcome to sign up);2.2 输入:signOff = False 用户已登陆; 返回:Flight/Itinerary/Home/Log off四个导航按钮 + 欢迎页面 (welcome username);2.3 输入:signOff = False 用户已登陆 + Flight/Itinerary/Home/Log off某一子页面; 返回: Flight/Itinerary/Home/Log off对应的页面
注3:导航栏的判断,是对welcome.pl延续,在前面的基础上进行更具体的判断 此index.html由三个主要的framesets组成 header.html: 作为一个subframeset引入,主要内容为下面的二个images,hp_logo.png和webtours.png;
nav.pl?in=home: 即Navigate menu。由nav.pl脚本中定义的函数进行控制,用户未登陆之前显示username, password, login; 登陆之后则显示订票选项,包括Flight/Itinerary/Home/Log off四个导航按钮;
home.html: 具体的文字描述(包含admin.html的链接)。 WebTour的网站文件存放路径 网站图片:C:\Program Files\HP\LoadRunner\WebTours\MercuryWebTours\images
网站HTML页面(如上面所提到的index.html, header.html,home.html):C:\Program Files\HP\LoadRunner\WebTours\MercuryWebTours 几个主要的perl文件 welcome.pl - # The welcome page. It handles the bottom frame. Generally, it splits the bottom frame into two more frames - the left (navigation) and right (info)frames.It also is used to reset the cookies on the client side when the user logs out.
nav.pl - # Handle the navigation bar... Basically, only two different modes - login and menus.
login.pl - # Handle the user registration, account autherication etc
admin.pl - # The Server Administration pages Replay log
-----------------------
Web Turbo Replay of LoadRunner 9.10.0 for WIN2003; WebReplay85 build 5896 [MsgId: MMSG-27143]
Run Mode: HTML [MsgId: MMSG-26000]
Run-Time Settings file: "C:\Program Files\HP\LoadRunner\scripts\WebFlight\order_10num\\default.cfg" [MsgId: MMSG-27141]
vuser_init.c(12): Registering web_reg_find was successful [MsgId: MMSG-26390]
vuser_init.c(15): Detected non-resource "http://127.0.0.1:1080/WebTours/header.html" in "http://127.0.0.1:1080/WebTours/" [MsgId: MMSG-26574]
vuser_init.c(15): Detected non-resource "http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true" in "http://127.0.0.1:1080/WebTours/" [MsgId: MMSG-26574]
vuser_init.c(15): Found resource "http://127.0.0.1:1080/WebTours/images/hp_logo.png" in HTML "http://127.0.0.1:1080/WebTours/header.html" [MsgId: MMSG-26659]
vuser_init.c(15): Found resource "http://127.0.0.1:1080/WebTours/images/webtours.png" in HTML "http://127.0.0.1:1080/WebTours/header.html" [MsgId: MMSG-26659]
vuser_init.c(15): Detected non-resource "http://127.0.0.1:1080/WebTours/nav.pl?in=home" in "http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true" [MsgId: MMSG-26574]
vuser_init.c(15): Detected non-resource "http://127.0.0.1:1080/WebTours/home.html" in "http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true" [MsgId: MMSG-26574]
vuser_init.c(15): Found resource "http://127.0.0.1:1080/WebTours/images/mer_login.gif" in HTML "http://127.0.0.1:1080/WebTours/nav.pl?in=home" [MsgId: MMSG-26659]
vuser_init.c(15): Registered web_reg_find successful for "Text=Web Tours" (count=6) [MsgId: MMSG-26364]
vuser_init.c(15): web_url("WebTours") was successful, 6453 body bytes, 1562 header bytes [MsgId: MMSG-26386]
vuser_init.c(24): Notify: Transaction "Login" started.

深刻剖析VuGen脚本录制原理的更多相关文章

  1. 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义

    原文  http://www.cnblogs.com/Bonnie83/p/3525200.html 初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因 ...

  2. 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义http请求

    初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因一是LR本身存在对测试环境的兼容性问题导致录制失败,更深层次的原因是录制者不清楚LR录制脚本的原理,或 ...

  3. Loadrunner脚本录制常见问题整理

    1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. 启动浏览器,打开Inter ...

  4. [转]LoadRunner脚本录制常见问题整理

    LoadRunner脚本录制常见问题整理 1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面 ...

  5. 【转】HTML-based script和URL-based script两种脚本录制方式

    在Web(HTTP/HTML)录制中,有2种重要的录制模式.用户该选择那种录制模式呢?HTML-mode录制是缺省也是推荐的录制模式.它录制当前网页中的HTML动作.在录制会话过程中不会录制所有的资源 ...

  6. 转:Loadrunner学习知多少--脚本录制下载操作

    在很多时候我们可能需要对系统进行这样的脚本开发,模拟用户点击一个下载链接,然后弹出下载框,选择保存,用来测试在大量用户下载时服务器的性能.但是现在大家对于这种脚本的处理方式往往是通过关联和C 语言的文 ...

  7. 老李推荐:第14章9节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-遍历控件树查找控件

    老李推荐:第14章9节<MonkeyRunner源码剖析> HierarchyViewer实现原理-遍历控件树查找控件   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员 ...

  8. 老李推荐:第14章3节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer实例化

    老李推荐:第14章3节<MonkeyRunner源码剖析> HierarchyViewer实现原理-HierarchyViewer实例化 poptest是国内唯一一家培养测试开发工程师的培 ...

  9. 老李推荐: 第14章2节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer架构概述

    老李推荐: 第14章2节<MonkeyRunner源码剖析> HierarchyViewer实现原理-HierarchyViewer架构概述   HierarchyViewer库的引入让M ...

随机推荐

  1. LoaderManager与CursorLoader用法

    一.基本概念 1.LoaderManager LoaderManager用来负责管理与Activity或者Fragment联系起来的一个或多个Loaders对象. 每个Activity或者Fragme ...

  2. git概论

    感谢:http://www.cnblogs.com/atyou/archive/2013/03/11/2953579.html git,一个非常强大的版本管理工具.Github则是一个基于Git的日益 ...

  3. 2015/9/10 Python基础(11):错误和异常

    程序在执行的过程中会产生异常,出现错误在以前的一个时期是致命的,后来随着程序的发展,使得一些错误的处理方式是柔和的,发生错误会产生一些错误的诊断信息和一些模糊的提示.帮助我们来处理异常.今天将学习Py ...

  4. 【洛谷 P2042】 [NOI2005]维护数列(自闭记第一期)

    题目链接 首先,这题我是没A的..太毒瘤了 题目本身不难,都是\(Splay\)的基操,但是细节真的容易挂. 调了好久自闭了,果断放弃.. 希望本节目停更. 放上最终版本 #include <c ...

  5. 重写strstr、strcpy、memcpy、memset、atof算法

    #include<stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> ...

  6. application.properties 文件的优先级

    bootstrapProperties #来自configServer的值 commandLineArgs #命令行参数 servletConfigInitParams servletContextI ...

  7. Eclipse中SVN更改连接用户

    Eclipse中安装了SVN插件,当连接到SVN服务器后,便无法从客户端更改连接帐号 百度一下,也就知道 查看Eclipse中使用的是什么SVN Interface,位置在windows > p ...

  8. Python3 文件基本操作

    Python文件的打开模式有: r,只读模式(默认).w,只写模式.[不可读:不存在则创建:存在则删除内容:]a,追加模式.[可读: 不存在则创建:存在则只追加内容:]"+" 表示 ...

  9. 金融分析二:Matplotlib模板

    Matplotlib:绘图和可视化 Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplo ...

  10. C++之参数总结

    函数的形参为函数提供了已命名的局部存储空间,它是在函数的形参表中定义的,并由调用函数时传递给函数的实参初始化,而形参的 初始化与变量的初始化一样,如果形参具有非引用类型,则复制实参的值,如果形参为引用 ...