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 技巧之 脚本设计的更多相关文章

  1. LoadRunner脚本设计、场景设计和结果分析

    本次笔记主要记录LoadRunner脚本设计.场景设计和结果分析   1. 脚本设计       录制模式            手工模式:插入步骤.手动编写       1.1  脚本增强:     ...

  2. JMeter转制LoadRunner HTTP协议脚本的小技巧

    对于Http协议的请求,除了手工编写脚本外,JMeter还提供了录制浏览器操作的功能,甚是方便.那如果手头有一堆HTTP协议的LoadRunner脚本,能不能比较快速的转制成JMeter脚本呢?其实也 ...

  3. LoadRunner 技巧之 思考时间设置

    LoadRunner 技巧之 思考时间设置 用户访问某个网站或软件,一般不会不停地做个各种操作,例如一次查询,用户需要时间查看查询的结果是否是自己想要的.例如一次订单提交,用户需要时间核对自己填写的信 ...

  4. LoadRunner 技巧之协议分析

    LoadRunner 技巧之协议分析 在做性能测试的时候,协议分析是困扰初学者的难题,选择错误的协议会导致Virtual User Generator 录制不到脚本:或录制的脚本不完整,有些应用可能需 ...

  5. LoadRunner 技巧之 检查点

    LoadRunner 技巧之 检查点 判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么VuGen 就认为脚本正确地运行了,并且是运行通过的.在绝 ...

  6. LoadRunner 技巧之 自动关联

    LoadRunner 技巧之 自动关联 这一节讲loadunner 关联的问题,其实这个东西理解起来简单,但说起来比较麻烦. 关联的原理:                               ...

  7. LoadRunner 技巧之 集合点设置

    LoadRunner 技巧之 集合点设置 Loadrunner 技巧已经整理4篇了,你个一定疑问,这些知识点,网上随处可见.确实,由于长时间没有使用这个工具,造成我的一些概念开始在大脑中模糊,我只是用 ...

  8. Loadrunner开发测试脚本

    Loadrunner开发测试脚本 开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定. 使用Loadrunner开发脚本过程中 ...

  9. LoadRunner下载文件脚本

    LoadRunner下载文件脚本  在看普泽关于pezybase的测试报告的时候,发现里面有用到jmeter(http协议)并发测试下载文件,考虑到后面可能需要在公司pezybase的并发下载,把之前 ...

随机推荐

  1. PowerDesigner连接 MySQL 生成 ER图

    powerdesigner 16.5 http://www.pcsoft.com.cn/soft/27495.html jdk 1.8 32位 https://mirrors.huaweicloud. ...

  2. docker_Ubuntu16.04下安装cuda

    经过一上午的研究,终于配置好docker环境,并成功安装cuda9.0. (1)下载安装文件.首先去英伟达官网下载cuda安装包:https://developer.nvidia.com/cuda-t ...

  3. Highcharts基本名词解释

    1.Highcharts基本组成: 2.名词解释 lang 语言文字对象 所有Highcharts文字相关的设置 chart 图表 图表区.图形区和通用图表配置选项 colors 颜色 图表数据列颜色 ...

  4. 第一次把本地项目与git相连

    原文:https://blog.csdn.net/a987625922/article/details/82189863 新建远程仓库(github或者gitee) 将本地仓库转换成版本库,并将文件添 ...

  5. 前端接受base64的excel,点击立即下载

    由于使用框架的特殊性,后台返回的文件流进行了base64加密,所以返回的是base64格式,所以需要将其转变为blob,上代码

  6. sizeof运算符、虚函数、虚继承考点(待修改)

    参考: http://blog.csdn.net/wangyangkobe/article/details/5951248 下面的文章解释有错误,不要看.......... 记住几句话: 编译器为每个 ...

  7. JAVA笔记8-对象转型casting

    1.规则 (1)基类(父类)的引用类型变量可以指向其子类对象:(向上转型) (2)基类的引用不可以访问其子类对象新增加的成员(属性和方法): (3)可以使用“引用变量 instanceof 类名”来判 ...

  8. 线程Thread、线程池ThreadPool

    Thread调用含参方法,参数必须是object类.ThreadPool调用的方法,无论是否含参,方法必须有object类参数(可不用,但得有) [线程] using System; using Sy ...

  9. Pod初始化容器之Init Container

    Init 容器的介绍 Pod能够具有多个容器,应用运行在容器里面,但是它也可能有一个或多个先于应用容器启动的 Init容器Init 容器与普通的容器非常像,除了如下两点:  c Init 容器总是运行 ...

  10. JavaWeb_(SSH论坛)_六、点赞模块

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 联合主键 创建p ...