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

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

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

 

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

或者也可以注册一个

 

 

二. 了解WebTours功能

首页

  > 左侧:用户登录

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

      administration ==> 设置页面

登录

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

  > Itineray ===> 订票记录

  > Home

  > Sign off ===> 退出

三. 录制订票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);

 

 

 

 

四. 回放 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次之后,可以看到三张票的信息完全一致

 

 

五. 参数化

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

选中城市名称,右键,选择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是一个道理

 

 

 

 

六. 函数

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:查找文本函数

 

posted @ 2019-11-03 22:19  cnhkzyy  阅读(608)  评论(0编辑  收藏  举报