测试linux web负载,使用LoadRunner对Web应用程序进行负载/压力测试

  • Post author:
  • Post category:linux


使用LoadRunner对Web应用程序进行负载/压力测试

一、制定负载测试计划

1、分析应用程序

确定系统的组成

描述系统配置

分析最普遍的使用方法

2、确定测试目标

3、计划怎样执行LoadRunner

确定使用LoadRunner度量哪些性能参数

根据测试结果计算这些参数确定用户的活动

得出系统存在哪些瓶颈

二、开发测试脚本

1、录制基本的用户脚本

(1)新建一个用户脚本

(2)选择通信协议

(3)启动录制命令

添加测试的URL,选择脚本位置

录制脚本组成:vuser_init[1]、vuser_end[1]、Action[*]

选择录制方式:基于浏览器的推荐 HTML-based Script

基于浏览器且存在javascript脚本向服务器发出请求的推荐 URL-based Script

基于浏览器且使用了HTTPS协议的推荐 URL-based Script

非基于浏览器的推荐 URL-based Script

在录制过程中LoadRunner不支持浏览器后退功能

2、完善测试脚本

(1)插入事务

衡量服务器性能.

事务执行中将记录事务执行时间。

不限制事务数量。

事务状态:LR_OUT LR_PASS LR_FAIL LR_STOP

(2)插入集合点

衡量在加重负载的情况下服务器的性能状况。

集合点经常与事务一起使用.

集合点只能放到Action部分.

(3)插入注释

(4)参数化输入

优点:脚本变短;使用不同值测试脚本.

任务:在脚本中用参数取代常量;设置参数的属性及数据源.

约束:仅用于函数中的参量;不是所有的函数参量都可以进行参数化.

参数类型:DateTime

Group Name

Load Generator Name 该虚拟用户所在的Load Generator 机器名

Iteration Number 测试脚本当前循环次数

Random Number

Unique Number

Vuser ID 当前虚拟用户ID

File 从属性设置中添加内容或者从数据库中取数据

User Defined Function 从用户开发的dll文件中取数据

参数更新类型[Update value on]:

Each Occurrence 运行时每遇到一次该参数就更新一次值

Each iteration  运行时每次循环都取相同值

Once            运行时每次循环都取一次值

从数据库取值:配置的sql语句可能会查处多条记录,如何从多条记录中取值方式如下

Sequential  每个虚拟用户都会按照顺序按行读取

Random   每次循环里随机读取一个,在循环中保持不变.

Unique

Same Line As

(5)插入函数

(6)插入Text/Image检查点

验证网页上是否存在指定的Text或Image

在较大的压力测试环境中网站功能能否保持正确.

3、Run-Time Setting

General:Handling、Multithreading、Automatic Transactions

NetWork:NetWork Speed

Preferences:Checks、Generate Web Performances graphs、Advanced

ContentCheck:Enable ContentCheck during replay

Think Time

4、单机运行测试脚本