求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
LoadRunner技巧之脚本设计
 

发布于2013-8-6

 

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

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

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

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

相关文章

微服务测试之单元测试
一篇图文带你了解白盒测试用例设计方法
全面的质量保障体系之回归测试策略
人工智能自动化测试探索
相关文档

自动化接口测试实践之路
jenkins持续集成测试
性能测试诊断分析与优化
性能测试实例
相关课程

持续集成测试最佳实践
自动化测试体系建设与最佳实践
测试架构的构建与应用实践
DevOps时代的测试技术与最佳实践
 
分享到
 
 
     


LoadRunner性能测试基础
软件测试结果分析和质量报告
面向对象软件测试技术研究
设计测试用例的四条原则
功能测试中故障模型的建立
性能测试综述
更多...   


性能测试方法与技术
测试过程与团队管理
LoadRunner进行性能测试
WEB应用的软件测试
手机软件测试
白盒测试方法与技术


某博彩行业 数据库自动化测试
IT服务商 Web安全测试
IT服务商 自动化测试框架
海航股份 单元测试、重构
测试需求分析与测试用例分析
互联网web测试方法与实践
基于Selenium的Web自动化测试
更多...