LoadRunner 技巧之脚本设计

发表于:2013-05-24来源:博客园作者:qileilove点击数: 标签: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;
}

原文转自:http://www.blogjava.net/qileilove/archive/2013/03/21/396789.html