LR手机屏幕录制软件脚本

Loadrunner脚本录制&执行
1.LR相关术语
1.1 相关术语
l 场景-场景文件根据性能要求定义每次测试期间发生的事件
l Vuser-在场景中,LR用虚拟用户代替真实用户。Vuser模仿真实用户的操作来使用应用系统。
l Vuser脚本-Vuser脚本描述Vuser在场景中执行的操作
l 事务-要评测服务器性能,需要定义事务。事务代表要评测的终端用户业务流程。
1.2 相关组件
l Virtual User Generator-录制最终用户业务流程并创建自动化性能测试脚本,即Vuser脚本
l Controller-组织、驱动、管理并监控负载测试
l Load Generator-通过运行Vuser产生负载
l Analysis-用于查看、剖析和比较性能结果
l Launcher-从单个访问点访问所有LR组件
1.3 负载测试流程
LR11进行负载测试流程主要包含5个阶段:规划(计划)-&创建脚本-&定义场景-&执行场景-&分析结果:
规划(计划)-定义性能测试要求,制定测试计划;
创建脚本-在自动化脚本中录制最终用户活动;
定义场景-使用Controller设置负载测试环境;
运行场景-使用Controller驱动、管理并监控负载测试;
分析结果-使用Analysis创建图和报告并评估性能。
2.创建脚本
2.1 选择协议
1.在首页点击“创建/编辑脚本”,进入Virtual User Generator编辑选择界面:协议选择WEB(HTTP/HTML):
2.点击新建脚本,进入协议选择界面,此时可根据测试内容进行协议选择,且点击一个协议下面,会有相关协议的简单介绍,本次选择的是Web
(HTTP/HTML):
选择协议并点击确定后,会创建一个空白脚本,并进入VuGen向导模式,及脚本录制、编辑模式,可在此界面进行脚本的录制、编辑、回放等操作:
2.2 脚本操作
2.2.1 脚本录制
进入VuGen向导模式,点击选择“开始录制”或者点击“录制”,进入录制简介,点击开始录制,弹出录制编辑界面:
“要录制的程序”中选择填写IE、火狐、谷歌浏览器的应用程序地址,经过网络搜索,目前LR11支持的IE浏览器最高ie9( win7 32位+LR11+IE10可用,但win7 64位+LR11+IE10可用,降至IE9可用),支持firefox3.6、24.0。点击确定后会弹出录制小窗口,并自动打开所选择的浏览器:
注意:在点击确定前,需要确保所选择的浏览器处于关闭状态,不然会出现无法打开浏览器,或不会进行事件的录制现象!
2.2.1 脚本查看
脚本录制完成后,LR11会自动生成脚本,并回到“录制概要”界面:
在此界面会显示录制的快照。
LR11对脚本的查看,可通过“树视图”和“脚本视图”进行查看,其中脚本视图会显示脚本代码,可直接对代码进行编辑查看,树视图会把每个操作步骤都显示出来,且有对应的快照显示:
注意:当脚本中出现中文乱码时,可选择“工具-录制时设置”,高级中,将支持字符集勾选,并选择UTF-8
2.2.2 脚本编辑
l 脚本参数化
(1)进入参数属性方式
选择视图&树视图进入树视图,双击需要参数化的位置:
将常量值变更为变量值-单击选项旁边的ABD图标,打开“选择或创建参数”对话框:
或者在脚本视图中,选中需要参数化的内容,右击,选择“替换为脚本”
点击确定后参数图标替换常量图标,右击参数图标,选择参数属性:
也可在脚本视图中,选择需要参数化的数据,右击选择参数属性,也可进入参数化操作界面。
(2)参数化方式
点击创建表,在编辑框中进行输入,点击添加行或添加列,输入多个参数;
可点击“用记事本编辑”,可以对记事本进行添加数据。
添加dat数据文件,点击”文件路径“后面的浏览,选择后缀为dat文件添加即可。
注意:文件里面的数据不要乱写,每条数据一行,不然会读取错误,且每一行之间以“,”分割。
(3)参数关联
虽然有些参数进行了参数化(如对用户名、密码进行了参数化),为了将用户名和密码一一对应,需要对参数进行关联。
如已对用户名进行参数化,参数名为【name】,设置密码参数化与用户名关联
点击用户名参数属性进入用户名参数化窗口,文件路径显示用户名的参数文件,点击添加列,用来放置密码:
在编辑框中直接输入或者在记事本中进行编辑输入需要的参数进行参数化,即完成用户名与密码的关联:
(4)数据分配与更新方式
脚本设置完参数化,脚本运行的每一遍所取的参数化的值都不一样,可以设置取值方式,”选择下一行“中进行选择:
顺序(Sequential):按照参数化的数据顺序,一个一个的来取。
随机(Random):参数化中的数据,每次随机的从中抽取数据。
唯一(Unique):为每个虚拟用户分配一条唯一的数据。
”更新时的值“
每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。
每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。
只取一次(once) :参数化中的数据,一条数据只能被抽取一次。(如果数据轮次完,脚本还在运行将会报错)
“当超出值时”
Abort Vuser:中断虚拟用户
Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。
Countinue with last value:继续用最后一条数据
“选择下一行”与“更新时的值”进行组合,有如下结果:
【选择下一行】
【更新时的值】
顺序(Sequential)
每次迭代(Each iteration)
功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条
顺序(Sequential)
每次出现(Each occurrence)
功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条
顺序(Sequential)
只取一次(once)
功能说明:每次迭代都取参数化文件中第一行的数据。
随机(Random)
每次迭代(Each iteration)
结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进行赋值
随机(Random)
每次出现(Each occurrence)
功能说明:每次从参数化文件中随机选择一行数据进行赋值
随机(Random)
只取一次(once)
功能说明:第一次迭代时随机从参数化文件中取一行数据,后面每次迭代都用第一次迭代的数据。
唯一(Unique)
每次迭代(Each iteration)
功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。
注:如果设置迭代次数为16次。结果:在执行第16次迭代时会抛异常,异常日志可在LoadRunner的回放日志(replayLog)中看到。
唯一(Unique)
每次出现(Each occurrence)
功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。
注:如果设置迭代次数为16次,而参数化文件中只有15条数据,明显数据不够。此时可以设置“when out of values”属性来判断当数据不够时的处理方式
唯一(Unique)
只取一次(once)
功能说明:每次都取参数文件中的第一条数据进行赋值
l 添加事务
为了记录步骤时间(如记录登录耗时多久),需要添加事务,添加事务方式:
方式一:在录制过程中添加事务
左边为事务开始时间,右边为事务结束时间,在登录界面点击事务开始,登录结束后点击事务结束,录制结束后,在录制脚本界面可以查看到“lr_start_transaction”字样:
方式二:手动插入事务
可在脚本界面,找到需要添加事务部分,直接添加“lr_start_transaction("事务")”“lr_end_transaction("事务",LR_AUTO)”,需要注意“事务”名称开始和结束时需要保持一致。
方式三:任务界面选择插入
点击“视图”,选择“任务”,在任务栏中选择“事务”,选择需要添加事务的脚本缩略图,点击“新建事务”,可以左右点击加入事务的开始和结束,可对事务名称进行命名:
事务查看:
可通过树视图脚本,查看插入脚本的实际位置,同时回放后可以在回放日志中查看到事务的时间:
l 文本检查
文本检查用于来检查脚本运行时WEB页面上是否有出现期望的信息,可以插入年内的内容检查:文本检查和图像检查。
可在VuGen向导界面点击“内容检查”,或在树视图界面,在快照中选择文本,右击,选择“添加文本检查”:
l 设置集合点
设置集合点,可以控制各个虚拟用户在同一时刻执行任务,借助集合点,可以在LR11中实现真正意义上的完合一样的并发。
在树视图界面,选择对应步骤,点击插入,选择插入集合点,或在脚本视图界面,直接在脚本对应位置上添加脚本“lr_rendezvous(”
2.2.3 脚本回放
录制完成并编辑完成后进行回放查看,查看脚本是否能够正常运行。
l 设置运行时设置
打开运行时设置,进行对应设置
运行逻辑:设置此节点迭代次数或连续重复活动的次数;
步:此节点用于控制迭代时间间隔,可以指定随机时间,更贴近用户;
日志:设置在运行要记录的信息量,当需要查看参数化是否成功时,需要勾选扩展日志,勾选参数替换。
思考时间:用户在各步骤之间停下来思考的时间。
l 回放信息查看
回放结束后,可进入“验证回放”中进行查看,会显示回放是否成功,当需要查看具体回放信息时,可点击“回放日志”进行查看。
回放日志中,会显示本次回放共迭代执行了多少次,过程中事务耗时,以及参数化设置是否正常等信息:
参数化信息
3.定义场景
3.1 选择场景
在LR11首页点击选择“运行负载测试”,进入场景选择界面:
两种场景选择的差别:
简单来说就是目标场景是一个闭环反馈概念,就是设置一个目标,用执行结果去跟目标比较,若达到则停止
若未达到则继续执行;手动场景没有目标概念,就是单纯按照设置去执行。
3.2 场景配置
选择好测试场景并点击确定后,会进入Controller窗口,此窗口用来进行场景配置设计以及进行执行操作:
其中“场景组”窗口主要显示配置的”Vuser”组,“场景计划”窗口主要用于设置加压方式以准确模拟真实用户行为。
l 配置生成负载的计算机(Load Generator)
Load Generator是通过运行Vuser在应用程序中生成负载的计算机。点击场景,选择Load Generator,进入配置界面:
点击连接,当状态由关闭变为就绪,说明计算机连接成功,Load Generator配置完成。
l 配置执行计划
配置完成Load Generator之后,需要设置加压方式,通过“场景计划”进行配置,其中主要配置是在全局计划中进行操作:
a. 配置初始化
初始化是指通过运行脚本中的vuser_init操作,为负载测试准备Vuser和Load Generator:
“同时初始化所有Vuser”指的是在执行前同时进行Vuser的初始化,第二个指的是每隔多长时间就初始化多少个Vuser,逐步阶梯进行初始化,第三个指的是在Vuser运行前才进行初始化,其余时间不做处理。
b. 设置执行计划
可设置同时执行Vuser进行并发,也可设置在执行过程中逐步增加Vuser,这样能够更加准确的找出系统响应时间开始变长的转折点:
其中开始后面的数值可以进行设置,即设置最终执行所用到的并发量。
c. 设置持续时间
可设置脚本执行的持续执行时间为多久,当设置时间之后,会执行所设置时间内的迭代次数,而不考虑脚本的运行时设置中所设置的迭代次数:
d. 设置停止Vuser策略
可以设置Vuser是全部同时结束,还是逐步递减结束(可用于检查系统到达阀值后系统恢复能力):
4.执行场景
当场景配置完成后,可点击下方的选项卡切换到运行界面,在此界面可以进行监控参数的配置,以及场景执行结果的展现。
l 设置监控参数
在可用图界面,可查看能够监控的参数信息,主要监控信息如下:
“正在运行Vuser”图:显示在指定时间完成的Vuser数;
“事务响应时间”图:显示完成每个事务所用的时间;
“每秒点击次数”图:显示场景运行期间Vuser每秒向Web服务器提交的点击次数(HTTP请求数);
“Windows资源”图:显示场景运行期间评测的Windows资源(需要手动添加度量,右击选择添加度量,输入需要检测的服务器地址,选择响应的度量数据,点击确定完成度量数据的添加)
l 执行过程中Vuser查看
当配置完成后,点击执行,会开始执行,此时点击Vuser按钮会显示每个Vuser执行状态,点击选择一个正在运行的Vuser,会显示用户操作的概要信息,当执行出现错误时,点击场景状态下面的失败事务可查看失败和错误原因。
当场景状态显示为关闭状态时,表示测试运行结束。
5.分析结果
在LR11首页,点击选择“分析测试结果”,或直接在测试执行完成后,点击选项中的结果,打开当前测试结果分析界面:
概要报告:在此界面会显示测试的基本情况,如执行的Vuser数量、执行时间等信息,其中事务摘要中的90%数值指的是90%用户在执行过程中所用的时间;
运行Vuser:本次测试过程中Vuser的运行集合点整体情况;
每秒点击次数:场景运行期间Vuser每秒向Web服务器提交的点击次数(HTTP请求数);
吞吐量:单位时间内吞吐量越大,说明服务器的处理能越好,与请求数一般是成正比关系;
事务摘要:显示在整个测试过程中事务运行情况;
平均事务响应时间:显示完成每个事务所用的时间。
LoadRunner11实操压力测试-一步一步慢慢来
如何使用Badboy进行脚本录制
loadrunner可以使用非IE浏览器进行录制脚本
【Loadrunner使用】 -脚本录制及调试(二)
loadrunner性能测试——第一步 录制脚本
LoadRunner录制脚本设置 问题解决
loadrunner录制脚本常见问题
loadrunner:Web(HTTP-HTML)协议的两种录制方式
解决loadrunner录制脚本不兼容方案
使用LoadRunner录制脚本时如何选择合适的协议?
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: '5865577',
container: s,
size: '300,250',
display: 'inlay-fix'用VU录制脚本输入录入网页地址:http://***.***.***.***/****.htm,开始录制时,打开对应的网页时提示:找不到网页,但是从IE中输入对应的地址可以打开网页
操作系统为:win2003 sp1
同事用的协议跟我一样,但是可以访问,
用VU录制脚本输入录入网页地址:http://***.***.***.***/****.htm,开始录制时,打开对应的网页时提示:找不到网页,但是从IE中输入对应的地址可以打开网页
操作系统为:win2003 sp1
同事用的协议跟我一样,但是可以访问,可以打开网页,郁闷ing,他为XP机器
全部答案(共1个回答)
内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只...
如何在 LoadRunner 脚本中做关联 (Correlation)
当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏览器与服务器之间所有的对话,包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了client端要对server端所说的话,而Recording Log则是完整纪录二者的对话。
当执行脚本时,您可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器,然后把网站内容传送给VuGen。
所以纪录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样,是写死的(hard-coded)。这样的作法在遇到有些比较聪明的服务器时,还是会失效。这时就需要透过「关联(correlation)」的做法来让VuGen可以再次成功地骗过服务器。
何谓关联(correlation)?
所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。
举一个常见的例子,刚刚提到有些比较聪明的服务器,这些服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。
下面的图示说明了这样的情形:
当录制脚本时,浏览器送出网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再送出网页B的情求时,这时就要用到ID=123的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。
在执行脚本时会发生什么状况?浏览器再送出网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,整个脚本的执行就会失败。
要对付这种服务器,我们必须想办法找出这个Session ID到底是什么、位于何处,然后把它撷取下来,放到某个参数中,并且取代掉脚本中有用到Session ID的部份,这样就可以成功骗过服务器,正确地完成整个交易了。
哪些错误代表着我应该做关联(correlation)?
假如脚本需要关联(correlation),在还没做之前是不会执行通过的,也就是说会有错误讯息发生。不过,很不幸地,并没有任何特定的错误讯息是和关联(correlation)有关系的。会出现什么错误讯息,与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。
要如何做关联(correlation)?
关联(correlation)函数
关联(correlation)会用到下列的函数:
• web_reg_save_param:这是最新版,也是最常用来做关联(correlation)的函数。
web_reg_save_param ( “Parameter Name” , , LAST );
• web_create_html_param、web_create_html_param_ex:这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。
详细用法请参考使用手册。在VuGen中点选【Help】>【Function reference】>【Contexts】>【Web and Wireless Vuser Functions】>【Correlation Functions】。
如何找出要关联(correlation)数据
简单的说,每一次执行时都会变动的值,就有可能需要做关联(correlation)。
VuGen提供二种方式帮助您找出需要做关联(correlation)的值:
1. 自动关联
2. 手动关联
VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。
自动关联提供下列二种机制:
• Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:
o 内建(Built-in Correlation):
VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。
您也可以在【Recording Options】>【Internet Protocol】>【Correlation】检视每个关联规则的定义。
o 使用者自订(User-defined Rules Correlation):
除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】建立新的关联规则。
• Correlation Studio:有别于Rules Correlation,Correlation Studio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
Rule Correlation
请依照以下步骤使用Rule Correlation:
1. 启用auto-correlation
1. 点选VuGen的【Tools】>【Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol】>【Correlation】,勾选【Enable correlation during recording】,以启用自动关联。
2. 假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。
3. 或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。
4. 设定当VuGen侦测到符合关联规则的数据时,要如何处理:
 【Issue a pop-up message and let me decide online】:跳出一个讯息对话窗口,询问您是否要建立关联。
 【Perform correlation in sceipt】:直接自动建立关联
2. 录制脚本
开始录制脚本,在录制过程中,当VuGen侦测到符合关联规则的数据时,会依照设定建立关联,您会在脚本中看到类似以下的脚本,此为BroadVision应用系统建立关联的例子,在脚本批注部分可以看到关联前的数据为何。
3. 执行脚本验证关联是OK的。
Correlation Studio
当录制的应用系统不属于VuGen预设支持的应用系统时,Rule Correlation可能既无法发挥作用,这时可以利用Correlation Studio来做关联。
Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
使用Correlation Studio的步骤如下:
1. 录制脚本并执行
2. 执行完毕后,VuGen会跳出下面的【Scan Action for Correlation】窗口,询问您是否要扫描脚本并建立关联,按下【Yes】按钮。
3. 扫描完后,可以在脚本下方的【Correlation Results】中看到扫描的结果。
4. 检查一下扫瞄的结果后,选择要做关联的数据,然后按下【Correlate】按钮,一笔一笔做,或是按下【Correlate All】让VuGen一次就对所有的数据建立关联。
注意:由于Correlation Studio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【Correlate All】。
5. 一般来说,您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。因为有时前面的关联还没做好之前,将无法执行到后面需要做关联的部份。
有可能有些需要做关联的动态数据,连Correlation Studio都无法侦测出来,这时您就需要自行做手动关联了。
手动关联的执行过程大致如下:
1. 使用相同的业务流程与数据,录制二份脚本
2. 使用WinDiff工具协助找出需要关联的数据
3. 使用web_reg_save_param函数手动建立关联
4. 将脚本中有用到关联的数据,以参数取代
接下来将详细的说明如何执行每个步骤
使用相同的业务流程与数据,录制二份脚本
1. 先录制一份脚本并存档。
2. 依照相同的操作步骤与数据录制第二份脚本并存盘。注意,所有的步骤和输入的数据一定都要一样,这样才能找出由服务器端产生的动态数据。
有时候会遇到真的无法使用相同的输入数据,那您也要记住您使用的输入数据,到时才能判断是您输入的数据,还是变动的数据。
使用WinDiff工具协助找出需要关联的数据
1. 在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。
2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。
3. 逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。
在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。
注意:请忽略lr_thik_time的差异部份,因为lr_thik_time是用来模拟每个步骤之间使用者思考延迟的时间。
4. 接着要在Recording Log(单一protocol)或是Generation Log(多重protocol)中找这个值。将鼠标光标点到Recording Log的第一行开头,按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log第一次出现的位置。
结果会有二种:
o 在Recording Log中找不到要找的数据,这时请先确认您找对了脚本,毕竟现在开启了二个几乎一样的脚本,很容易弄错。
o 在Recording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response可以知道数据是从服务器端传送到client端的。假如此数据第一次出现是在Sending request中,则表示此数据是由client端产生,不需要做关联,但是有可能需要做参数化(parameterized)。
您要找的标头格式如下:
*** [tid=b9 Action1 2] Receiving response from host
( 25/11/:00 )
5. 现在您已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联。
使用web_reg_save_param函数手动建立关联
在找到是由服务器所产生的动态数据之后,接下来要做的就是找出适当的位置,使用web_reg_save_param函数,将这个动态数据撷取到某个参数中。
1. 要在哪里使用web_reg_save_param函数?
在之前的步骤,我们已经在Execution Log找到可能需要关联的动态数据。在Execution Log中选取动态数据前的文字然后复制,我们将会利用这段文字,来帮助我们找出要关联的动态数据。
不过在这之前我们要先找出使用web_reg_save_param函数的正确位置,所以我们要再重新执行一遍脚本,而且这次会开启所有的Log。
1. 在VuGen中点选【Vuser】>【Run-Time Settings】。
2. 点选【General】>【Log】。
3. 勾选【Enable logging】、【Always sends messages】、【Extended log】,以及【Extended log】下的所有选项。
4. 按下【OK】就可以执行脚本了。
执行完脚本之后,在Execution Log中搜寻刚刚复制的字符串。找到字符串后,在字符串前面会有A.tion1.c(7),这个7就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第7行。
在脚本的第7行前插入一行空白行,然后输入
web_reg_save_param(“UserSession”,
“UserSession” 这个 “UserSession” 就是到时要使用的参数名称,建议给个有意义的名字。
注意:到这里整个web_reg_save_param函数还没完成。
2. 找出web_reg_save_param中要用到的边界
web_reg_save_param函数主要是透过动态数据的前面和后面的固定字符串,来辨识要撷取的动态数据的,所以我们还需要找出动态数据的边界字符串。
找出左边界字符串
再回到Execution Log中,选取动态数据前的字符串并且复制它。
这时会有个问题,到底要选取多少字符串才足以唯一识别要找的动态数据呢?建议是越多越好,但是尽量不要包含到特殊字符。
在这边我们选取「input type=hidden name=userSession value=」字符串。选好之后,还要再确认一次这段字符串真的是可以唯一识别的,所以我们在Execution Log中透过Ctrl+F的搜寻,找找看这段字符串是否可以找到要找的动态数据。假如找不到,web_reg_save_param函数还有个ORD参数可以使用,ORD参数可以设定出现在第几次的字符串才是要找的字符串。
将这个边界字符串加到未完成的web_reg_save_param函数中:
web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”,
找出右边界字符串
接下来要找出动态数据的右边界字符串,这个字符串就比较好找了,从动态数据的最后一个字符开始,通常就是我们要找的右边界字符串了。
以这个例子来看,就是「>」,所以再把右边界字符串加入,web_reg_save_param函数中,这时web_reg_save_param函数已经快完成了。最后再加上「LAST);」就完成整个web_reg_save_param函数了。
web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”, “RB=>”, LAST);
将脚本中有用到关联的数据,以参数取代
当使用web_reg_save_param建立参数后,接下来就是用“UserSession”参数去取代脚本中写死的(hard-coded)资料。
“Name=userSession”, “Value=8651DQADHfApHDHfcDtccpfAttcf”, ENDITEM,
“Name=userSession”, “Value={UserSession}”, ENDITEM,
到这里您已经完成了一个关联了,接下来就是执行脚本,是否能成功运行,假如还是有问题,就要检查看看是否还需要再做另一个关联。
关于 web_reg_save_param 函数
对于关联(correlation)来说,web_reg_save_param是最重要的一个函数,其功能是在下载的网页内容中,透过设定的边界字符串,找出特定的数据并将其储存在一个参数中,以供后续脚本使用。
接下来将针对web_reg_save_param做比较详细的说明。
Service and registration type function
web_reg_save_param是一个Service function。service function主要是用来完成一些特殊的工作的,如关联、设定proxy、提供认证信息等,当其作用时,不会对网页的内容做任何的修改。
web_reg_save_param同时也是一个registration type function (只要函数名称中包含_reg_的字眼,表示其为registration type function)。registration type function意味着其真正作用的时机是在下一个action function完成时执行的。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,则web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param找寻要做关联的动态数据并建立参数。
所以要记住一点,要使用registration type function时,要注意其放置的位置必须在要作用的action function之前。
int web_reg_save_param(const char *ParamName, , LAST);
ParamName:存放动态数据的参数名称
list of Attributes:其它属性,包含 Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, 以及 SaveLen。属性值不分大小写,例如 Search=all。以下将详细说明每个属性值的意义:
• Notfound:指定当找不到要找的动态数据时该怎么处置。
o Notfound=error:当找不到动态数据时,发出一个错误讯息。假如没设定此属性,此为LoadRunner的默认值。
o Notfound=warning:当找不到动态数据时,不发出错误讯息,只发出警告,脚本也会继续执行下去不会中断。在对角本除错时,可以使用此属性值。
• LB:动态数据的左边界字符串。此属性质是必须要有的,而且区分大小写。
• RB:动态数据的右边界字符串。此属性质是必须要有的,而且区分大小写。
• RelFrameID:相对于URL而言,欲搜寻的网页的Frame。此属性质可以是All或是数字,而且可有可无。
• Search:搜寻的范围。可以是Headers(只搜寻headers)、Body(只搜寻body部分,不搜寻header)、Noresource(只搜寻body部分,不搜寻header与resource)或是All(搜寻全部范围,此为默认值)。此属性质可有可无。
• ORD:指明从第几次出现的左边界开始才是要撷取的数据。此属性质可有可无,默认值是1。假如值为All,则所有找到符合的数据会储存在数组中。
• SaveOffset:当找到符合的动态数据时,从第几个字符开始才开始储存到参数中。此属性质不可为负数,其默认值为0。
• Convert:可能的值有二种:
o HTML_TO_URL: 将HTML-encoded数据转成URL-encoded数据格式
o HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格式
• SaveLen:从offect开始算起,到指定的长度内的字符串,才储存到参数中。此参数可有可无,默认值是-1,表示储存到结尾整个字符串。
web_reg_save_param("A", "LB/ic=
现在一般都是 兽王 比较流行! FB 单刷都可以!
2000 的话 只能升级哦! 不过如果把 效果都关掉!只开个 法术的效果!配置不是很高!
那是因为你的电脑中没有安装能打开这种文件的软件,比如是FLV格式的视频文件,如果你没有安装能打开播放FLV文件的软件,就打不开它了。
另一种情况是虽然电脑中已经...
完全可以,这配置挺好的。你可以一放心的玩吧~!
电脑卡是会影响到DPS的:
1.会影响到走位;
2.预判时间增加;
3.技能特效不易观察;
4.视觉容易疲劳;
1.法术细节开到中就行了,主要是战斗中可以...
孕期乳房胀痛:一些妇女在怀孕40天左右的时候,由于胎盘、绒毛大量分泌雌激素、孕激素、催乳素,致使乳腺增大,而产生乳房胀痛,重者可持续整个孕期,不需治疗。在怀孕初...
答: 比比租房平台真的可以确保我的联系方式不会被各种经纪人都知道吗?
答: 这个有很多
答: 你是问故障还是问安装方面的?
每家运营商的DNS都不同,而且各省的也不同。你可以问问你的网络提供商,他们会告诉你的。(也可以通过分别访问域名和IP来检查DNS是否正常,访问域名不行,而访问IP可以,则说明DNS设置不对)
另外,如果ADSL-电脑没问题,一般ADSL-路由器也没问题的。而且采用ADSL拨号的话,DNS可以不设置的,拨号成功后会自动取得DNS服务器。
问题可能出在路由器设置上。进去检查一下吧。看看上网方式,上网用户名密码是否正确。
(有个问题要注意一下,有些地方的运营商会限制使用路由器或者限制接入数量,一般是采取绑定网卡MAC地址的方式,如果路由器设置都正常,试试路由器的MAC地址克隆功能,把电脑网卡的MAC复制过去)
铝属于两性金属,遇到酸性或碱性都会产生不同程度的腐蚀,尤其是铝合金铸件的孔隙较多,成分中还含有硅和几种重金属,其防腐蚀性能比其他铝合金更差,没有进行防护处理的铝铸件只要遇到稍带碱性或稍带酸性的水,甚至淋雨、水气、露水等就会受到腐蚀,产生白锈。
解决的办法。
铝铸件完成铸造后,在机械加工前,先要进行表面预处理,如预先对铸件进行喷砂,涂上一道底漆(如锌铬黄底漆),在此基础上再进行机械加工,以避免铸铝件在没有保护的情况下放久了被腐蚀。
1、以身作则,如果连自己都做不好,还怎么当班长?
2、人缘好,我就是由于人缘不好,才改当副班长的。
3、团结同学,我们班有一个班长就是由于不团结同学才不当班长的,他现在是体育委员。
4、要有管理能力,首先要有大嗓门,我们班有位学习委员就是由于声音太轻才以3票之差当不了班长;其次要口齿清楚,让同学能听得懂你说的话;第三要说出有道理的话,让吵闹或打架的同学心服口服;第四,不能包庇好朋友,公正;第五,要搞好师生关系;第六,要严以律己,宽以待人,我们班的第一任班长就是因为“严以待人,宽以律己”才不能继续当下去的。
5、要坚持,我们班的纪律委员就是由于没有恒心,原来的大组长、卫生委员、劳动委员、体育委员、学习委员、小组长等(每个学期都加起来)都被免除了,现在的才当1天的纪律委员要不要免除都在考虑中,还要写说明书。
6、提醒班干部做自己要做的事,要有责任心。我们班的纪律委员就是没有责任心,班长的职务都被罢免了。
7、不要拿出班长的架子,要虚心。
8、关心同学(包括学习)。
9、要及早发现问题,自己可以解决的自己解决;自己不能解决的,早日让班主任解决。
10、要发现班级的好的地方,及时表扬。让全班都照做。
11、不要太担心学习,当个班干部,对以后工作有好处,这是个锻炼的机会,好好当吧,加油!
在高中阶段,学校和老师的规定一般都是为了学生的成绩着想,执行老师的话,其实也是为了大家好。即使有时候打点小报告,只要你的心态的好的,也不是坏事。比如A学习不专心,你用个适当的办法提醒老师去关心他,其实也是为了他好。
总的方针:和同学们组成一个团结的班集体,一切以班集体利益为上(当然不冲突国家、社会和学校利益为前提)。跟上面领导要会说话,有一些不重要的东西能满就满,这对你的同学好,也对你的班好。
再说十五点
一,以德服人
也是最重要的,不靠气势,只靠气质,首先要学会宽容(very important)你才能与众不同,不能和大家“同流合污”(夸张了点),不要有这样的想法:他们都怎么样怎样,我也。如果你和他们一样何来让你管理他们,你凭什么能管理他们?
二,无亲友
说的绝了点,彻底无亲友是不可能,是人都有缺点,有缺点就要有朋友帮助你。不是说,不要交友,提倡交友,但是不能把朋友看的太重,主要不能对朋友产生依赖感,遇到事情先想到靠自己,而不是求助!
三,一视同仁
上边说的无亲友也是为了能更好的能一视同仁,无论是什么关系,在你眼里都应是同学,可能比较难作到,但没有这点,就不可能服众。
四,不怕困难
每个班级里都会一些不听话的那种,喜欢摆谱的那种,不用怕,他们是不敢怎么样的!知难而进才是一个班长应该有的作风。
五,带头作用
我想这点大家都有体会就不多说了
六,打成一片
尽量和大家达成共识,没有架子,不自负不自卑,以微笑面对每一个人,不可以有歧视心理,不依赖老师,有什么事情自己解决,老师已经够累的了。
七,“我是班长”
这句话要随时放在心底,但是随时都不要放在嘴上,有强烈的责任心,时刻以班级的荣誉为主,以大家的荣誉为主。什么事情都冲在最前面。遇事镇定。
八,帮助同学
帮助同学不是为了给大家留下一个好的印象等利益方面的事,是你一个班长的责任,是你应该做的,只要你还是一个班长,你就要为人民服务(夸张)为同学服务。
九,诚实守信
大家应该都知道这个,是很容易作到的,也是很不容易作到,然这两句话并不是矛盾的,不是为了建立一个好的形象,和班级责任也没有什么关系,只是一个人应该有的道德品质。但你必须作到,连这样都做不到,就不可能做成一个好的班长。
十,拿的起放的下
学会放弃也同样重要,学会辨别好与坏。知道什么是该做的,什么是不该做的。
十一,谦虚
认真分析同学给你提的意见,不管是有意的,还是无意的。提出来就有他的想法,有他的动机。要作到一日三醒我身。
十二,心态端正
总之要有一个好的心态,积极向上的心态,把事情往好里想,但同时要知道另一面的危机,遇到事情首先想到的应该是解决问题,而不是别的!
十三,合理的运用身边的人和事
主动,先下手为强,遇到不能够管理的,就可以和其他班干部一起对付,实在不行,就迅速找到老师陈述自己的观点,免得他倒打一耙(尽量少打小报告.)
十四,和老师同学搞好关系.
威信可以提高,你说的话老师也比较相信,可以简单一点的拿到老师的一些特殊授权,而这些授权往往对你的帮助很大.
十五,合理的运用自己的权利和魄力
对付难管理的,权利在他的眼中已经不存在的,就运用你的魄力,用心去交流,努力感动身边的人,感动得他们铭记于心,你就成功了.
一点要加油哦
销售额:指企业在销售商品、提供劳务及让渡资产使用权等日常活动中所形成的经济利益的总流入。税法上这一概念是不含任何税金的收入。销售额适用于制造业、商业等。
营业额会计上指的是营业收入,税法指的是应税营业收入。营业额属于含税收入,适用于饮食业、运输业、广告业、娱乐业、建筑安装业等 。
考虑是由于天气比较干燥和身体上火导致的,建议不要吃香辣和煎炸的食物,多喝水,多吃点水果,不能吃牛肉和海鱼。可以服用(穿心莲片,维生素b2和b6)。也可以服用一些中药,如清热解毒的。
确实没有偿还能力的,应当与贷款机构进行协商,宽展还款期间或者分期归还; 如果贷款机构起诉到法院胜诉之后,在履行期未履行法院判决,会申请法院强制执行; 法院在受理强制执行时,会依法查询贷款人名下的房产、车辆、证券和存款;贷款人名下没有可供执行的财产而又拒绝履行法院的生效判决,则有逾期还款等负面信息记录在个人的信用报告中并被限制高消费及出入境,甚至有可能会被司法拘留。
第一步:教育引导
不同年龄阶段的孩子“吮指癖”的原因不尽相同,但于力认为,如果没有什么异常的症状,应该以教育引导为首要方式,并注意经常帮孩子洗手,以防细菌入侵引起胃肠道感染。
第二步:转移注意力
比起严厉指责、打骂,转移注意力是一种明智的做法。比如,多让孩子进行动手游戏,让他双手都不得闲,或者用其他的玩具吸引他,还可以多带孩子出去游玩,让他在五彩缤纷的世界里获得知识,增长见识,逐渐忘记原来的坏习惯。对于小婴儿,还可以做个小布手套,或者用纱布缠住手指,直接防止他吃手。但是,不主张给孩子手指上“涂味”,比如黄连水、辣椒水等,以免影响孩子的胃口,黄连有清热解毒的功效,吃多了还可导致腹泻、呕吐。
合肥政务区网络广告推广网络推广哪家公司比较好 一套能在互联网上跑业务的系统,被网络营销专家赞为目前最 有效的网络推广方式!
1、搜索引擎营销:分两种SEO和PPC,即搜索引擎优化,是通过对网站结构、高质量的网站主题内容、丰富而有价值的相关性外部链接进行优化而使网站为用户及搜索引擎更加友好,以获得在搜索引擎上的优势排名为网站引入流量。
良工拥有十多位资深制冷维修工程师,十二年生产与制造经验,技术力量雄厚,配有先进的测试仪器,建有系列低温测试设备,备有充足的零部件,包括大量品牌的压缩机,冷凝器,蒸发器,水泵,膨胀阀等备品库,能为客户提供迅捷,优质的工业冷水机及模温机维修和保养。
楼主,龙德教育就挺好的,你可以去试试,我们家孩子一直在龙德教育补习的,我觉得还不错。
成人可以学爵士舞。不过对柔软度的拒绝比较大。  不论跳什么舞,如果要跳得美,身体的柔软度必须要好,否则无法充分发挥出理应的线条美感,爵士舞也不值得注意。在展开暖身的弯曲动作必须注意,不适合在身体肌肉未几乎和暖前用弹振形式来做弯曲,否则更容易弄巧反拙,骨折肌肉。用静态方式弯曲较安全,不过也较必须耐性。柔软度的锻炼动作之幅度更不该超过疼痛的地步,肌肉有向上的感觉即可,动作(角度)保持的时间可由10馀秒至30-40秒平均,时间愈长对肌肉及关节附近的联结的组织之负荷也愈高。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415}

我要回帖

更多关于 LR为什么有些事务脚本录制不上 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信