LoadRunner 技巧之 脚本设计
LoadRunner 技巧之 脚本设计
在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样。我们如何来模拟这此用户的行为?经验与能力有限,我这里也做个简单的分析。
Action 介绍
在此之前,我们先来介绍一个Action ,Action就像是一个函数包,将用户操作根据类别存放在不同的函数中,当选择完HTTP协议后,VuGen将自动生成脚本的框架。
默认脚本目录有三部分组成:
Vuser_int
Action
Vuser_end
简单有的来说,我们可以把他们看成三个程序文件,他们依次按照Vuser_int --->Action--->Vuser_end 的顺序执行,存放于Action中的脚本可以循环执行(可以设置循环次数)
在脚本录制之前,我们可以设置将脚本录制在哪一部分:
在脚本录制的过程中,我们可以选择切换脚本的存放位置:
在脚本左侧右键添加新的action部分:
在菜单栏Vuser ---> run-time setting ,选择Run logic 选项,可以设置Action部分的循环次数。
下面简单介绍如何使用参数化、action设置和业务用户比例等进行性能测试。
场景一:
一个用户访问WebTours (loadrunner 自带程序)首页,做两次登录与退出
1、vuser_init部分录制访问webrours首页:
vuser_init()
{
web_url("WebTours",
"URL=http://127.0.0.1:2080/WebTours",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t30.inf",
"Mode=HTML",
LAST);
web_url("header.html",
"URL=http://127.0.0.1:2080/WebTours/header.html",
"Resource=0",
"RecContentType=text/html",
"Referer=http://127.0.0.1:2080/WebTours/",
"Snapshot=t31.inf",
"Mode=HTML",
LAST);
web_url("welcome.pl",
"URL=http://127.0.0.1:2080/WebTours/welcome.pl?signOff=true",
"Resource=0",
"RecContentType=text/html",
"Referer=http://127.0.0.1:2080/WebTours/",
"Snapshot=t32.inf",
"Mode=HTML",
EXTRARES,
"Url=../favicon.ico",
"Referer=", ENDITEM,
LAST);
}
2、将脚本录制部分切换到Action 部分,录制用户登录与退出
Action()
{
web_submit_data("login.pl",
"Action=http://127.0.0.1:2080/WebTours/login.pl",
"Method=POST",
"Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",
"Mode=HTML",
ITEMDATA,
"Name=userSession",
"Value=110416.933414338fzHQfHVpAVcfDtAHHptczAHf", ENDITEM,
"Name=username", "Value={username}", ENDITEM, //参数化用户名
"Name=password",
"Value={password}", ENDITEM,
//参数化密码
"Name=JSFormSubmit",
"Value=on", ENDITEM,
LAST);
web_submit_data("login.pl_2",
"Action=http://127.0.0.1:2080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",
"Snapshot=t33.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession",
"Value=110416.933414338fzHQfHVpAVcfDtAHHptczAHf", ENDITEM,
"Name=username",
"Value=test", ENDITEM,
"Name=password",
"Value=123456", ENDITEM,
"Name=JSFormSubmit",
"Value=on", ENDITEM,
"Name=login.x",
"Value=56", ENDITEM,
"Name=login.y",
"Value=4", ENDITEM,
LAST);
return 0;
}
run-time setting 的Run logic 选项,设置Action 运行两次。
运行脚本结束,可以通过菜单栏view--->Test Results 来查看运行的结果是否正确
场景二:
一个用户登录一个系统,做3次查询,5次插入,退出。
这里我就不做详细介绍了,需要的注意点是,可以在run-time setting 的Run logic 选项中点击insert Block 添加快,双击Block 设置循环次数。
将我们的查询操作与插入操纵分别存放在两个迭代块(block)中
我们还可以设置迭代之间的间隔,run-time setting 的pacing
场景三 :
这个场景跟用户操作比例有关系业务有关,一个网站,在线用户中,有80% 用户发表文章,20%的用户上传相片。
那么,我可以分别录制两个脚本,第一脚本,用户操作发表文章;第二个脚本,用户操作上传相片。
将两个脚本导入Controller 控制器中。
注意勾选 use the percentage mode to distribute the vusers among the scrpts ,不然无法分配脚本用户比例。
我们可以为脚本分配不同的用户比例来运行。
----------------------------------------
这里只是提供一个思路,我们可以根据这些设置(或叫技巧)结合我们的业务需求来进行脚本与场景设计。
LoadRunner 技巧之 脚本设计的更多相关文章
- LoadRunner脚本设计、场景设计和结果分析
本次笔记主要记录LoadRunner脚本设计.场景设计和结果分析 1. 脚本设计 录制模式 手工模式:插入步骤.手动编写 1.1 脚本增强: ...
- JMeter转制LoadRunner HTTP协议脚本的小技巧
对于Http协议的请求,除了手工编写脚本外,JMeter还提供了录制浏览器操作的功能,甚是方便.那如果手头有一堆HTTP协议的LoadRunner脚本,能不能比较快速的转制成JMeter脚本呢?其实也 ...
- LoadRunner 技巧之 思考时间设置
LoadRunner 技巧之 思考时间设置 用户访问某个网站或软件,一般不会不停地做个各种操作,例如一次查询,用户需要时间查看查询的结果是否是自己想要的.例如一次订单提交,用户需要时间核对自己填写的信 ...
- LoadRunner 技巧之协议分析
LoadRunner 技巧之协议分析 在做性能测试的时候,协议分析是困扰初学者的难题,选择错误的协议会导致Virtual User Generator 录制不到脚本:或录制的脚本不完整,有些应用可能需 ...
- LoadRunner 技巧之 检查点
LoadRunner 技巧之 检查点 判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么VuGen 就认为脚本正确地运行了,并且是运行通过的.在绝 ...
- LoadRunner 技巧之 自动关联
LoadRunner 技巧之 自动关联 这一节讲loadunner 关联的问题,其实这个东西理解起来简单,但说起来比较麻烦. 关联的原理: ...
- LoadRunner 技巧之 集合点设置
LoadRunner 技巧之 集合点设置 Loadrunner 技巧已经整理4篇了,你个一定疑问,这些知识点,网上随处可见.确实,由于长时间没有使用这个工具,造成我的一些概念开始在大脑中模糊,我只是用 ...
- Loadrunner开发测试脚本
Loadrunner开发测试脚本 开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定. 使用Loadrunner开发脚本过程中 ...
- LoadRunner下载文件脚本
LoadRunner下载文件脚本 在看普泽关于pezybase的测试报告的时候,发现里面有用到jmeter(http协议)并发测试下载文件,考虑到后面可能需要在公司pezybase的并发下载,把之前 ...
随机推荐
- IIS 程序池优化配置方案
内容目录 IIS 程序池优化配置方案IIS高并发配置一.IIS站点绑定程序池设置二.支持万级并发请求 IIS 程序池优化配置方案 最近由于系统的客户越来越多,有客户反映访问速度变慢,尤其是api的请求 ...
- Arch Linux 安装rust
Arch Linux 安装rust 0. 参考 Rust Toolchain 反向代理使用帮助 1. 安装 安装rustup和toolchain yaourt -S rustup rustup ins ...
- mxnet 豆瓣镜像源安装
mxnet安装比较简单,这里直接通过豆瓣镜像源用pip安装 pip install -i https://pypi.doubanio.com/simple/ mxnet-cu100 # 进入ipyth ...
- LCA-tarjan understand
首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点. 换句话说,就是两个点在这棵 ...
- Mysql 查看连接数,状态及最大并发数(转载)
-- show variables like '%max_connections%'; 查看最大连接数 set global max_connections=1000 重新设置 mysql> ...
- Linux性能分析命令工具汇总
转自:http://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章. ...
- 【POJ2376】Cleaning Shifts
题目大意:区间最小覆盖问题. 题解:本身是一道贪心水题,但是细节还是比较多的,记录一下. 由于每个奶牛对答案的贡献是一样的,肯定要选择在满足条件的基础上能够拓展最多的那个奶牛.为了满足条件,对区间左端 ...
- JAVA学习第二周课后作业
Java 的基本运行单位是类.类由数据成员和函数成员组成.变量之间可以相互转换.String是一个类.static是静态.全局的意思.经过测试,Java的枚举类型定义的Size与String一样都不是 ...
- Linux 查看内存条数据和大小命令
查看内存条数据和大小命令: sudo dmidecode | grep -A16 "Memory Device$" 需要root 权限.. [life@localhost mp3b ...
- STM32使用HAL库,使用延时卡死的问题。
之前一直使用标准库的,现在转到HAL库来后,编写了第一个程序就遇到了问题.发现我使用库里的延时程序HAL_Delay()时,会卡死在里面. 根据程序,进入到这个延时程序后 ,发现HAL_GetTick ...