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

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

  ----------------------------------------

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








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
JSON 测试技术 数据安全/隐私保护
Loadrunner 脚本开发-利用web_submit_data函数实现POST请求
Loadrunner 脚本开发-利用web_submit_data函数实现POST请求
116 0
|
网络协议 测试技术 Windows
Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
130 0
|
测试技术
Loadrunner 脚本开发-从文件读取数据并参数化
Loadrunner 脚本开发-从文件读取数据并参数化
64 0
|
Java 测试技术 Android开发
Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试
Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试
82 0
|
测试技术
Loadrunner 脚本录制-通过代理录制脚本
Loadrunner 脚本录制-通过代理录制脚本
126 0
|
SQL 关系型数据库 MySQL
Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
69 0
|
JSON 测试技术 数据格式
Loadrunner 脚本开发-利用web_custom_request函数进行接口测试
Loadrunner 脚本开发-利用web_custom_request函数进行接口测试
54 0
|
测试技术
loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码
66 0
|
测试技术
loadrunner 脚本开发-文件下载
loadrunner 脚本开发-文件下载
63 0
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
86 0