LoadRunner脚本开发:关联和检查点(二)

1|0一. 录制飞机订票系统前期准备:


1. 启动webTours

  开始 > HP Software > HP LoadRunner > Samples > web > Start HP Web Tours Server

2. 浏览器访问 webTours

  开始 > HP Software > HP LoadRunner > Samples > web > HP web Tours Application

  账户密码:jojo/bean   Jojo/bean

  用户信息文件:E:\programs\HP LoadRunner 12.02 Community Edition\LoadRunner\WebTours\cgi-bin\users

3. 启动 fiddler

4. 启动 virtual user generator

  add new script

    协议:web-http/html、名称

  Record Options  Ctrl + F7

  Recording   Ctrl + R

 

第一行是密码,第二行是用户名

或者也可以注册一个

 

 

2|0二. 了解WebTours功能


首页

  > 左侧:用户登录

  > 右侧:sign up now ==> 注册用户入口

      administration ==> 设置页面

登录

  > Flights ===> 订票航班信息

  > Itineray ===> 订票记录

  > Home

  > Sign off ===> 退出

3|0三. 录制订票Recording


1. Start Recording

  URL address:http://127.0.0.1:1080/WebTours/index.htm

2. 录制

3. Compile  Shift + F5

  语法检查

4. Replay   F5

  回放

 

 

 

 

开始登录前,插入事务

 

 

登录后,结束事务

 

 

开始订票前,插入事务

 

 

选择航班信息后,结束事务

 

 

选择时间点,插入事务

选择时间后,关闭事务

 

 

文本检查点

 

 

插入退出事务

 

 

关闭事务,停止录制

 

 

 

 

 

 

系统自动关联后的脚本

/*Correlation comment - Do not change! Original value='127394.791656541zffcizQpfQfiDDDDDQDVHpcVHfHf' Name ='userSession' Type ='ResponseBased'*/ web_reg_save_param_regexp( "ParamName=userSession", "RegExp=name=\"userSession\"\\ value=\"(.*?)\"/>\\\n<table\\ border", //这里是一个正则 SEARCH_FILTERS, "Scope=Body", "IgnoreRedirections=No", "RequestUrl=*/nav.pl*", LAST);

 

 

 

 

4|0四. 回放 Replay


1. Output

  回放日志

    Starting iteration

    红色有错误,回放失败

    Ending iteration

    view summary > The test Results

      Test Results  显示回放内容快照

 

 

F5 回放成功,去掉Summary页面

 

 

 

 

 

如果又想看到Summary页面,点击Output日志,View summary

 

 

Test Results中的快照

 

 

设置迭代  F4

假设迭代3次,3次之后,可以看到三张票的信息完全一致

 

 

5|0五. 参数化


为了每次迭代都能得到不同的信息,对城市名称做参数化

选中城市名称,右键,选择Replace with Parameter,然后选择Create New Parameter...

 

 

变量名称自定义,类型为file,然后点击Properties...配置其他城市名

 

 

 

 

 

 

 

 

 

 

用{参数}表示参数化,当然也可以自定义参数化符号

 

 

 

 

 

同样,也参数化到达城市

 

 

迭代3次后,发现3张票都是从Denver到London

 

 

查看参数化后的变量值,Tools——Options——Scripting——勾选Collect replay statistics

 

 

可以从Runtime Data中查看参数的变化

 

 

刚刚关联城市没有随机是因为这个地方是固定的,可以猜测021是出发城市id,437是到达城市id,后面是日期时间

 

 

在选择城市的方法上,右键,选择Show Snapshot,可以看到请求参数和响应结果

 

 

将响应的html结果拷贝到Notepad++,打开,可以搜索到刚才的021;437;11/03/2019

也可以去页面里按F12查看

 

 

这就是关联,前面一个页面的响应结果后面的页面需要,注意这个正则后面有checked=checked,因为后面页面需要的出发到达地点都是已选中的。关联的时候,关联函数要放在前面页面函数的前面,如B依赖A,关联函数要放在A前面。以web_reg开头的函数都是注册函数,要写在被提取函数的前面

web_reg_save_param_regexp( "ParamName=boundFlight", "RegExp=name=\"outboundFlight\" value=\"(.*?)\" checked=\"checked\"", SEARCH_FILTERS, "Scope=Body", "IgnoreRedirections=No", "Ordinal=1", //Ordinal需要添加 LAST );

有两个方法需要参数化下

 

 

验证结果,可以看到第一组是Denver到Frankfurt,第二组是London到Seattle,第三组是Paris到Sydney,这个其实和jmeter遍历csv是一个道理

 

 

 

 

6|0六. 函数


1. 选中函数名称,按F1,进入函数使用帮助。加*是必传的

 

int web_url( const char *StepName, const char *url, <List of Attributes>,
[EXTRARES, <List of Resource Attributes>,] LAST );

 

const char *StepName,const char *url:必要参数

<List of Attributes>:属性参数,可以写多个也可以不写,可选

[EXTRARES, ]:扩展参数,可选

LAST:结束标记

Example:可以直接修改案例内容

 

 

2. web_sumit_data函数是不依赖上下文的,也就是上个页面执行出错,不影响这个函数的执行,web_submit_form也是用于post请求,它是依赖上下文的

 

3. web_reg_save_param_regexp 实际上是注册函数,有reg的都是注册函数,web_reg_save_param也是正则函数,LR12推荐使用前者

4. web_reg_text:查找文本函数

 


__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/11784673.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(621)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示