(一)  几个重要概念说明

  1. 集合点:同步虚拟用户,以便同一时间执行任务。
  2. 事务:事务是指服务器响应用户请求所用的时间,当然它可以衡量某个操作,如登录所需要的时间,也可以衡量一系列的操作所用的时间,如从登录开始到完成一张完整的订单。一个完整的事务是由事务开始、一个或多个业务操作/任务、事务结束三部分构成。
  3. 检查点:检查点是在回放脚本期间检查特定的文本字符串或者图片等内容,从而验证服务器响应内容的正确性。检查点可以理解为检查实际结果是否与预期结果一致。(其实就是简单的检查下功能的正确性,因为得考虑高负载情况下功能不稳定的问题)
  4. 思考时间:用户在执行2个连续操作期间等待的时间称为思考时间。loandrunner 在录制脚本时,虚拟用户产生器(VuGen)将录制实际的停留等待时间并将该时间插入到脚本,脚本中的lr_think_time()函数就是思考时间。

(二)  飞机订票系统安装

loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装。

https://marketplace.microfocus.com/appdelivery/content/web-tours-sample-application

上面这个地址下载:(没账号的话要先注册一个账号)

https://pan.baidu.com/s/1lG7SyP9mwEKNfbZqC61WQA 百度网盘下载地址

下载并解压后,可以看到这2个文件

1、 运行上面的strawberry-perl-5.10.1.0.msi 文件(我是安装这个之前先解压了WebTours.zip文件,这个文件解压与否应该是不影响安装的,影响的话就先解压WebTours.zip文件再去安装)

2、 解压WebTours.zip文件,然后执行下面的文件启动服务(StartServer.bat)

3、 在浏览器输入http://127.0.0.1:1080/WebTours/就可以访问了

(三)  飞机订票系统---客户信息注册(正式录制、修改脚本前的一些说明)

1、      创建一个新的脚本。(文件--新建脚本和解决方案)

vuser_int   Action   vuser_end,这三个文件应该依次是初始化(vuser_int)、测试(Action)、结束(vuser_end),例如:打开网页(初始化部分)、注册功能测试(测试部分)、关闭网页(结束部分),当然,我们也可以将脚本全部写在Action中。(但是有多个Action情况下,我们可以只写一遍初始化和结束部分的代码)

2、      录制脚本

3、      这边貌似不管怎么配置都会弹出一个无Internet的提示(一般来说确定有网,浏览器却打不开网页,可能的原因之一是代理服务器设置的问题,这边不太了解loadrunner录制时是直接用本地的网络,还是自己有个代理服务器(运行时设置有个代理服务器的选项,不过设置成不用代理也没什么用)),暂时的想法是只要网页能正常打开、脚本能正常录制就行了,所以我直接选择不再检查Internet访问了。

4、      (帮助文档是这么说明,不过暂时看不出什么区别)如果应用程序使用SSL连接(即协议是https的),需要在录制选项的“网络-映射和筛选”的端口映射中配置正确的SSL版本。这部分先略过了,以后在研究,先用HP的飞机订票软件学习下(这个是HPPT协议的,暂时用不到这个)。

(三)  飞机订票系统---客户信息注册(开始录制脚本、修改脚本)

(已经点击第二步的【开始录制】)开始录制客户信息注册的脚本

注册成功后

录制完成的初始脚本:(注释部分是我加上的,这里说下录制的时候录制选项有2种模式,一种是下面这种简略的,还有一种是比较详细的(录制选项中可以设置))

 Action()
{
/*加载指定url*/
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t8.inf",
"Mode=HTML",
LAST);
/*点击相应的链接*,C语言中 ; 表示语句的结束,就像我们用句号。来表示结束一样/
web_link("sign up now",
"Text=sign up now",
"Snapshot=t9.inf",
LAST);
/*思考时间(停留时间),这次注册过程中,这个没什么用,可以去掉*/
lr_think_time(); /*提交表单*/
web_submit_form("login.pl",
"Snapshot=t10.inf",
ITEMDATA,
"Name=username", "Value=lai", ENDITEM,
"Name=password", "Value=123", ENDITEM,
"Name=passwordConfirm", "Value=123", ENDITEM,
"Name=firstName", "Value=lai", ENDITEM,
"Name=lastName", "Value=quanhua", ENDITEM,
"Name=address1", "Value=贝贝村", ENDITEM,
"Name=address2", "Value=51000", ENDITEM,
"Name=register.x", "Value=43", ENDITEM,
"Name=register.y", "Value=9", ENDITEM,
LAST); return ;
}

接下来,需要在脚本中

1、设置集合点(同时打开注册页面进行注册)

2、插入事务开始、事务结束

3、设置检查点(检查注册是否成功)

4、参数化注册信息

集合和事务,用工具插入,也可以直接在需要的地方敲上相应的代码。(或者直接鼠标右键-插入)

参数化

插入检查点的方式,按之前的版本,录制过程或快照 --- HTTP数据页/页面视图都可以插入检查点才对,不过目前这个选项是灰色的(不能点击)。看了下帮助文档,12.55的版本中,web_find()函数已经弃用,不知道是不是这个原因导致了添加文本检查点选项是灰色的

我们的目的只是简单的检查下功能的正确性,这里改用web_reg_find()函数了:web_reg_find(Text="",Search="",LAST),简单的说下这2个参数的意思,text指要搜索的文本字符串,search指搜索范围(默认body,HTML代码的BODY 部分),详细可以看帮助文档。在编辑器里输入 web_reg_find(),然后按F1就行了。(这个函数要放到操作的前面,例如我们注册一个账户,这个函数要放到注册操作前,而不是注册操作后面)

参数添加完后,代码中要使用参数的地方,使用这种格式就行了{username}

修改后的代码

 Action()
{
/*集合点*/
lr_rendezvous("同时打开网页进行注册"); /*事务开始*/
lr_start_transaction("同时注册事务"); /*加载指定url*/
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t8.inf",
"Mode=HTML",
LAST); /*点击相应的链接*/
web_link("sign up now",
"Text=sign up now",
"Snapshot=t9.inf",
LAST);
/*检查表单提交后,是否出现指定的text 值*/
web_reg_find("Text={username}",LAST);
/*提交表单*/
web_submit_form("login.pl",
"Snapshot=t10.inf",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value={password}", ENDITEM,
"Name=passwordConfirm", "Value={passwordCofirm}", ENDITEM,
"Name=firstName", "Value={firstname}", ENDITEM,
"Name=lastName", "Value={lastname}", ENDITEM,
"Name=address1", "Value={address1}", ENDITEM,
"Name=address2", "Value={address2}", ENDITEM,
"Name=register.x", "Value=43", ENDITEM,
"Name=register.y", "Value=9", ENDITEM,
LAST); /*事务结束*/
lr_end_transaction("同时注册事务", LR_AUTO); return ;
}

loadrunner笔记(二):飞机订票系统--客户信息注册的更多相关文章

  1. 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制

    1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...

  2. loadrunner飞机订票系统从登陆订票退票登出的脚本实现代码调试通过

    在LR自带的飞机订票系统中,完整模拟一个用户从登陆->订票->退票->登出这样一个业务流程,分解每个事务为一个Action: 进入首页->登陆->进入订票页面->选 ...

  3. LR自带网站飞机订票系统 启动

    LR自带的网站:飞机订票系统 可是如何启动自带的网站呢?? 一.启动服务:开始-所有程序--HP Software-HP LoadRunner-Samples-Web-Start Web Server ...

  4. windows API 开发飞机订票系统 图形化界面 (四)

    接下来的是录入航班.修改航班信息功能的实现: //录入航班 BOOL EntryFlight(HWND hEntryDlg){ TCHAR szDiscount[]; TCHAR szFare[],s ...

  5. web类协议脚本-飞机订票系统示例

    以下是LR自带的飞机订票系统的Demo,希望能帮助大家. Action() { int iRand; int iTmp; char *strTmpA; char *strTmpB; char *str ...

  6. Java版飞机订票系统

    关注微信公众号:Worldhello 回复 飞机订票系统 可获得系统源代码并可加群讨论交流 数据结构课程设计题目:          [飞机订票系统]            通过此系统可以实现如下功能 ...

  7. Loadrunner录制+运行+结果-【飞机订票系统实战】

    目录结构: 一.LoadRunner实现订票系统脚本录制 二.Loadrunner实现订票系统IP欺骗(此处可以不设置) 三.Loadrunner运行录制的脚本 四.Load generator配置 ...

  8. windows API 开发飞机订票系统 图形化界面 (二)

    首先,用到的数据结构的定义.以及全局变量和函数的声明如下: // Flight.c : 定义应用程序的入口点. // #include "stdafx.h" //订单 typede ...

  9. windows API 开发飞机订票系统 图形化界面 (一)

    去年数据结构课程设计的作品,c语言实现,图形化界面使用windows API实现. 首发在我csdn博客:http://blog.csdn.net/u013805360/article/details ...

随机推荐

  1. 分布式环境中,模块数据交互协议分析 (百度brpc)

    1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...

  2. 用SSH登录远程的机器,在远程机器上执行本地机器上的脚本

    假设本地的机器IP为10.245.111.90,我们想要在10.245.111.93上执行一个保存在10.245.111.90上的脚本. 经过测试通过的命令如下: ssh root@10.245.11 ...

  3. Tone Mapping算法系列二:一种自适应对数映射的高对比度图像显示技术及其速度优化。

    办公室今天停电,幸好本本还有电,同事们好多都去打麻将去了,话说麻将这东西玩起来也还是有味的,不过我感觉我是输了不舒服,赢了替输的人不舒服,所以干脆拜别麻坛四五年了,在办公室一个人整理下好久前的一片论文 ...

  4. 【Linux】使用Google Authenticator 实现ssh登录双因素认证

    一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全.为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码, ...

  5. RabbitMQ五种消息队列学习(三)–Work模式

    由于在实际应用中,简单队列模型无法解决很多实际问题,而且生产者和消费者是一对一的关系.模型较为单一.故引入Work模式. 结构图 一个生产者.多个消费者. 一个消息只能被一个消费者获取. 测试实现:  ...

  6. linux环境快速安装python3

    之前在linux上安装python3的时候,为了让不影响linux环境原有的python2的环境,选择的方法都是下载对应的linux环境的python包,不过 这里需要注意的是,不要更改linux默认 ...

  7. jquery裁剪图片插件cropit示例

    重装农药第16天!! jquery裁剪图片插件cropit示例 背景:做的手机网页项目,用html file控件上传图片,有些手机拍照后图片会很大,20M以上的,用之前的H5 formdata上传的话 ...

  8. Asp.Net WebApi上传图片

    webapi using System; using System.Collections; using System.Collections.Generic; using System.Diagno ...

  9. Spring Boot 调用 MongoRepository时报org.springframework.beans.factory.NoSuchBeanDefinitionException错误的解决办法

    这个问题整整折腾了我两天,现在记录下来,希望可以帮助和我一样,遇到相同问题的小伙伴. 项目是分层的(Intellij IDEA中的模块Module),有API(Core)层,Service&D ...

  10. Android 获取外网IP,实测有效

    网上有很多获取IP的例子,不过都是获取到的本地ip,还有的是因为走不通了,获取到的ip为空,下面看实测获取到外网IP的代码,注意需要在线程里面执行 /** * 获取外网的IP(要访问Url,要放到后台 ...