扩展:深刻剖析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. POJ3690:Constellations(二维哈希)

    Constellations Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 6822   Accepted: 1382 题目 ...

  2. kafka 命令笔记

    以下命令都是在kafka根目录下 启动自带的zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties 启动kafka(启动 ...

  3. ExtJS下拉列表使用方法(异步传输数据)

    最近使用ExtJS下拉列表框(ComboBox)希望完成一个动态下拉列表的功能,即列表中的数据都通过异步方式查询数据库而来,同时在用户选择了列表中的某个值后,可以从后台正确的获取用户选择项所对应的值. ...

  4. [freemarker篇]06.超级强大的自定义指令

    Freemarker的自定义指令是很强大的,非常强大,在之后的教程中我会简单的做一个示例,让大家对其有所了解!如果做Freemarker编程,请好好看看API手册,可以说里面的内容很多!也是一门独立的 ...

  5. python模拟android屏幕高频点击工具

    一.环境 windows 10  + python3.6 二.需求 1.模拟android设备高频点击事件: 2.模拟规定次数的点击事件或模拟规定时间内的点击事件: 三.code 1.模拟规定时间内的 ...

  6. windows修改文件的修改或者创建时间

    https://www.online-tech-tips.com/computer-tips/how-to-change-the-last-modified-date-creation-date-an ...

  7. Item 5 避免创建不必要的对象

    场景一: 这个是经常出现的问题,因为我们经常误用String. public class Test { public static void main(String[] args) { //参数&qu ...

  8. [uva11997]k个最小和

    一个k*k的矩阵,每行选取一个数相加则得到一个和,求最小的前k个和. k<=750 已知前m行最小的前k个和d[1]…d[k],则前m+1行最小的前k个和都必定是d[i](i<=k)+a[ ...

  9. 【BZOJ】1419 Red is good

    [算法]期望DP [题解]其实把状态表示出来就是很简单的期望DP. f[i][j]表示i张红牌,j张黑牌的期望. i=0时,f[0][j]=0. j=0时,f[i][0]=i. f[i][j]=max ...

  10. Vuejs - 组件式开发

    初识组件 组件(Component)绝对是 Vue 最强大的功能之一.它可以扩展HTML元素,封装可复用代码.从较高层面讲,可以理解组件为自定义的HTML元素,Vue 的编译器为它添加了特殊强大的功能 ...