51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3419|回复: 2
打印 上一主题 下一主题

[转贴] LoadRunner技巧之脚本设计

[复制链接]
  • TA的每日心情
    无聊
    6 小时前
  • 签到天数: 1051 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2016-2-22 13:37:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样。我们如何来模拟这此用户的行为?经验与能力有限,我这里也做个简单的分析。

    Action 介绍

    在此之前,我们先来介绍一个Action ,Action就像是一个函数包,将用户操作根据类别存放在不同的函数中,当选择完HTTP协议后,VuGen将自动生成脚本的框架。

    默认脚本目录有三部分组成:

    1.Vuser_int

    2.Action

    3.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 ,不然无法分配脚本用户比例。

    我们可以为脚本分配不同的用户比例来运行。

    这里只是提供一个思路,我们可以根据这些设置(或叫技巧)结合我们的业务需求来进行脚本与场景设计。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏5
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-8-4 11:02
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2016-3-23 10:32:35 | 只看该作者
    感谢分享实践应用
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 15:19 , Processed in 0.068381 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表