一、Manual Scenario(手工场景)【重点】

说明:在实际性能测试过程中,应用最多的还是基于手工设置的场景;

1.1 为什么工作中选择手工场景?

说明:在手工场景模式内可以最大程度模拟业务场景(虚拟用户的增加、减少、虚拟用户对混合场景的应用);

1.2 手工场景的创建

1) 启动 选择手工场景

1. 启动:1). 启动Controller工具2). Select Scenario Type:Manual Scenario(手工场景)
2. 说明:1). Use the Percentage Mode...选项:为(百分比模式)暂不用理会2). 场景添加脚本参考-目标场景添加脚本

2) 手工场景界面

说明:1. 标1:手工场景的基础计划(脚本名称为组名称、虚拟用户数量默认为10);2. 标2:标1基础计划的默认计划选项(计划方式:场景模式、运行模式:实际计划)3. 标3:标1计划运行模式(虚拟用户初始化方式、虚拟用户启动加载方式、计划持续运行时间方式、计划完成用户退出方式)4. 标4:标3计划运行策略直观图提示:1. 以上4点为手工场景核心,是手工场景重要组成,接下来我们结合场景来理解学习

二、案例 场景需求

说明:1. 我们知道场景搭建是模拟真实应用场景,而真实场景一般都为混合模式(多个业务)2. 我们结合LR自带机票网站,模拟真实场景来学习混合场景的搭建
场景:1. 根据需求分析WebTours订票网站80%用户在使用订票业务,20%用户使用注册业务,统计事务响应时间2. 混合场景=注册业务(20)+订票业务(80)
需求:1、注册业务小于5秒2、订票业务小于10秒
提示:1. 注册业务:为录制注册脚本,录制候时记得插入事务2. 订票业务:为录制的订票脚本,录制脚本时记得插入事务

需求操作:

1. 注册业务、订票业务脚本
2. 创建手工场景,添加(注册业务、订票业务)脚本
3. 修改脚本虚拟用户数(注册20、订票80)-计划设计
4. 设计全局计划运行策略

1、编写注册脚本

Action()
{lr_start_transaction("注册-打开首页");web_url("注册—打开首页","URL=http://127.0.0.1:1080/WebTours/",LAST);lr_end_transaction("注册-打开首页", LR_AUTO);lr_start_transaction("注册-注册页");web_url("注册—打开注册页","URL=http://127.0.0.1:1080/WebTours/login.pl?username=&password=&getInfo=true",LAST);lr_end_transaction("注册-注册页", LR_AUTO);lr_start_transaction("注册-注册业务");//lr_rendezvous("集合点-注册");web_submit_data("注册页面","Action=http://127.0.0.1:1080/WebTours/login.pl","Method=POST","TargetFrame=","Referer=","Mode=HTML",ITEMDATA,"Name=username", "Value={username}", ENDITEM,"Name=password", "Value=123456", ENDITEM,"Name=passwordConfirm", "Value=123456", ENDITEM,"Name=register.x", "Value=66", ENDITEM,"Name=register.y", "Value=6", ENDITEM,LAST);lr_end_transaction("注册-注册业务", LR_AUTO);return 0;
}

2、订票脚本

Action()
{lr_start_transaction("订票-订票总");lr_start_transaction("订票-打开首页");//关联函数获取动态Sessionweb_reg_save_param("Session","LB=name=userSession value=","RB=>",LAST);web_url("打开首页","URL=http://127.0.0.1:1080/WebTours/",LAST);lr_end_transaction("订票-打开首页", LR_AUTO);lr_start_transaction("订票-登录");web_submit_data("登录","Action=http://127.0.0.1:1080/WebTours/login.pl","Method=POST","TargetFrame=","Referer=","Mode=HTML",ITEMDATA,"Name=userSession", "Value={Session}", ENDITEM,"Name=username", "Value={username}", ENDITEM,"Name=password", "Value=123456", ENDITEM,LAST);lr_end_transaction("订票-登录", LR_AUTO);lr_start_transaction("订票-订票业务");//lr_rendezvous("集合点-订票");web_url("订票-打开航班页面","URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",LAST);web_submit_data("从哪到哪","Action=http://127.0.0.1:1080/WebTours/reservations.pl","Method=POST","TargetFrame=","Referer=","Mode=HTML",ITEMDATA,"Name=advanceDiscount", "Value=0", ENDITEM,"Name=depart", "Value=Denver", ENDITEM,"Name=departDate", "Value=01/29/2020", ENDITEM,"Name=arrive", "Value=Denver", ENDITEM,"Name=returnDate", "Value=01/30/2020", ENDITEM,"Name=numPassengers", "Value=1", ENDITEM,"Name=seatPref", "Value=None", ENDITEM,"Name=seatType", "Value=Coach", ENDITEM,"Name=findFlights.x", "Value=40", ENDITEM,"Name=findFlights.y", "Value=13", ENDITEM,"Name=.cgifields", "Value=roundtrip", ENDITEM,"Name=.cgifields", "Value=seatType", ENDITEM,"Name=.cgifields", "Value=seatPref", ENDITEM,LAST);web_submit_data("航班公司","Action=http://127.0.0.1:1080/WebTours/reservations.pl","Method=POST","TargetFrame=","Referer=","Mode=HTML",ITEMDATA,"Name=outboundFlight", "Value=000;0;01/29/2020", ENDITEM,"Name=numPassengers", "Value=1", ENDITEM,"Name=advanceDiscount", "Value=0", ENDITEM,"Name=seatType", "Value=Coach", ENDITEM,"Name=seatPref", "Value=None", ENDITEM,"Name=reserveFlights.x", "Value=40", ENDITEM,"Name=reserveFlights.y", "Value=8", ENDITEM,LAST);web_submit_data("发票页面","Action=http://127.0.0.1:1080/WebTours/reservations.pl","Method=POST","TargetFrame=","Referer=","Mode=HTML",ITEMDATA,"Name=firstName", "Value=Joseph", ENDITEM,"Name=lastName", "Value=Marshall", ENDITEM,"Name=address1", "Value=234 Willow Drive", ENDITEM,"Name=address2", "Value=San Jose/CA/94085", ENDITEM,"Name=pass1", "Value=Joseph Marshall", ENDITEM,"Name=numPassengers", "Value=1", ENDITEM,"Name=seatType", "Value=Coach", ENDITEM,"Name=seatPref", "Value=None", ENDITEM,"Name=outboundFlight", "Value=000;0;01/29/2020", ENDITEM,"Name=advanceDiscount", "Value=0", ENDITEM,"Name=JSFormSubmit", "Value=off", ENDITEM,"Name=buyFlights.x", "Value=67", ENDITEM,"Name=buyFlights.y", "Value=10", ENDITEM,"Name=.cgifields", "Value=saveCC", ENDITEM,LAST);lr_end_transaction("订票-订票业务", LR_AUTO);web_url("退出","URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",LAST);lr_end_transaction("订票-订票总", LR_AUTO);return 0;
}

3、参数列表

(1)注册参数

(2)订票参数

4、场景设置

5、注册组需要设置迭代4次

6、在场景中的日志设置

7、运行结果

通过的20个订票日志为:

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景相关推荐

  1. LoadRunner之Controller的Goal-Oriented Scenario(目标场景)

    一.目标场景 [了解] 1.1 什么是目标场景 说明:目标场景设计就是定义要实现的[测试目标],LR会根据根据这些目标自动构建场景.(测试目标:LR提供了5中目标-虚拟用户数.每秒单击次数.每秒事务数 ...

  2. Controller中目标场景及手工场景

    场景是一种用来模拟大量用户操作的技术手段,通过配置和执行场景向服务器产生负载,验证系统各项性能指标是否达到用户要求. 新建场景 1.通过VuGen直接切换当前脚步进入到场景 在菜单下打开Create ...

  3. ndnSIM 如何使用 scenario 模板 进行 真实场景仿真

    ndnSIM 安装完成后,默认在 ns-3 目录下运行启动程序. 根据官网的文档(https://ndnsim.net/current/getting-started.html#)说明,仿真场景可以直 ...

  4. Scenario和Scenario Outline的区别

    根据官网文档: Scenario: 12个里面吃5个Given 这里有12个黄瓜When 我吃了5个黄瓜Then 我应该还剩7个黄瓜Scenario: 20个里面吃5个Given 这里有20个黄瓜Wh ...

  5. 《LoadRunner性能测试巧匠训练营》——3.3 场景监控实战

    本节书摘来自华章计算机<LoadRunner性能测试巧匠训练营>一书中的第3章,第3.3节,作者:赵 强 邹伟伟 任健勇 更多章节内容可以访问云栖社区"华章计算机"公众 ...

  6. k8s核心技术-Controller(Deployment)_概述和应用场景---K8S_Google工作笔记0028

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 接下来咱们开始说controller master节点上的controller manager 咱 ...

  7. Loadrunner场景设计之场景计划

    背景: 线上loadrunner视频学习整理笔记如下,主要是对LR场景模拟器的功能使用说明(翻译): 1.LR允许的场景有两种: Goal:目标场景,是以特定的性能指标为驱动来实现的场景,无法控制每一 ...

  8. LoadRunner下载、安装与使用 | VUGen、Controller、Analysis | 性能测试笔记

    文章目录 下载链接 安装 使用VUGen 抓取的脚本为空 解决乱码问题 1. `录制过程中乱码`解决 2. `运行过程中乱码`解决 参数化 参数要用`{}`括起来 事务 检查点 思考时间 集合点 使用 ...

  9. 【规划】如何添加新的scenario

    1. 添加场景的基本步骤 1.1 步骤 添加scenario 新增相关scenario的文件夹及相关文件:BUILD, ***(scenario name)_scenario.h/.cc, ***(s ...

最新文章

  1. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(双分类变量分组可视化)实战(dot plot)
  2. yum 搭建 LNMP
  3. Delphi 使用双缓冲解决图片切换时的闪烁问题 good
  4. 简单的UIButton按钮动画效果iOS源码
  5. 【转】OpenCV里IplImage数据结构极易出错的问题,IplImage和单字节char*的相互转换
  6. Django-请求与响应
  7. raspberry pi_使用Kubernetes在Raspberry Pi上进行集群计算
  8. 距离之和最小 V3 51Nod - 1110(带权中位数或者爆搜)
  9. 去除CSDN系统通知小红点
  10. linux微信登陆失败,微信登陆失败原因与解决方法
  11. 华为nova5iotg功能使用_华为nova5有OTG功能吗?可以连接U盘和鼠标吗[多图]
  12. sqlsever2008 函数
  13. 国内与国际控制学科知名会议
  14. MySQL 数据库单表查询——高级查询
  15. DeepDive自动化信息抽取---全网首发DeepDive偷工减料超速部署方式
  16. 【算法学习笔记】6:SAT问题的一些经典求解策略
  17. 阿里云 mysql 1045_解决阿里云登录mysql出现的1045错误
  18. java压缩字符串_Java压缩字符串的方法收集
  19. pytorch .detach() .detach_() 和 .data用于切断反向传播
  20. matlab——corrcoef函数的使用

热门文章

  1. NAT-T下的端口浮动
  2. 共享内存大数据量快速进程间通讯
  3. 10.HTML基础——表格标签
  4. USM Appliance 部署和用户文档
  5. php kafka使用
  6. 2020-02-09
  7. 小学校本培简讯 计算机技术,鲁巷实验小学开展德育校本培训简讯
  8. 在字符串中查找子字符串
  9. JavaScript学习笔记三——查阅MDN、日期对象
  10. 手机微信占用了大量内存?这3个方法,帮你从源头清理垃圾