性能测试的自动化

背景:

很多性能测试工程师在进行性能测试执行时,都会出现工作时间的限制,特别是性能场景的执行,一般由于白天测试环境不稳定、需要进行功能测试。所以许多场景的执行需要放在晚上执行,而且需要一个一个的执行,这样作为性能测试工程师,就必须加班加点或者通宵进行场景执行。那么有没有一个工具或者好的方法实现一键式或者说是自动化的方式,使场景能够按照我们事先设置好的规则进行执行呢?

 

 带着这个问题,查找了网上一些资料发现,这个是完全可以实现的;

wlrun.exe执行

我们先来介绍下loadrunner中场景执行的wlrun.exe命令:

1.      dos命令下,进入到wlrun.exe目录中:

2.      执行wrrun.exe

将弹出:

 

 

从上面的操作来看,直接通过dos命令是可以打开Controller的:

 

cd  d:\ProgramFiles\HP\LoadRunner\bin

d:

wlrun.exe

 

3.      下面看下wlrun.exe命令相关参数说明表:

 

参数

参数描述

TestPath

场景路径,例如:d:\Program Files\scenario\ scenario.lrs

Run

运行场景、将所有输出消息转存到res_dir\output.txt文件中,并关闭Controller

InvokeAnalysis

指示Loadrunner在场景终止时调用Analysis。如果没有指定该参数,Loadrunner将使用场景默认设置

ResultName

完整结果路径。例如:“d:\result|res_01

ResultCleanName

结果名。例如:“res01

ResultLocation

结果目录。例如:“d:\result

 

4.      使用实例:

进入到lr结果目录中:

发现场景结果已经保存了,并且结果保存后,Controller自动关闭了;

 

以上就初步达到了自动执行的目的。

 

5.      完整的命令:

 

cd  d:\ProgramFiles\HP\LoadRunner\bin

d:

wlrun –TestPath d:\lr场景\商品图片空间_搜索.lrs –ResultNamed:\lr结果\搜索01 –Run

 

 

以上说明用命令是可以对场景进行执行的。

 

Schtasks.exe执行

 

这个与Linux下的crontab命令类似

 

 

结合之前的wlrun命令:

schtasks /create /tn "test1" /tr D:\test\11.bat/sc once /st 14:55:40 /sd 2014/10/23 /ru SN\KFYFCS03 /rp Administrator90

 

执行完成后,在任务计划中增加了test1的执行任务:

其中的11.bat中命令是:

cd  d:\Program Files\HP\LoadRunner\bin

d:

wlrun -TestPathd:\lr场景\商品图片空间_搜索.lrs -ResultName d:\lr结果\搜索01 –Run

 

 schtasks 参数命令:

 

/SC 指定计划类型包括minute,hourly,daily,weekly,monthly,once onstart,onlogon,onidle

 

/tn 后面指定任务的名称;

 

/tr  后面指定任务运行的程序或命令;

 

/s 后面指定的远程计算机名称;

 

/u 后面指定用户账户;

 

/p 指定该用户账户对应的密码;

 

/ru 指定用户账户的权限运行任务;

 

/rp 指定用户账户的密码;

 

/mo 指定任务在其计划类型的运行频率,默认是1

 

/d 指定周或月的几天

 

/m 指定某月或数月

 

/st 指定在一天的什么时候开始执行,格式:HHMM:SS

 

/sd 指定任务计划开始的日期;

 

/ed 指定任务计划介绍的日期;对于onceonstart,onlogon,onidle计划无效;

 

当到145540秒时,会运行D:\test\11.bat任务计划;

即:

cd  d:\ProgramFiles\HP\LoadRunner\bin

d:

wlrun –TestPath d:\lr场景\商品图片空间_搜索.lrs –ResultNamed:\lr结果\搜索01 –Run

 

这样就完全能够实现性能测试的自动化。

 

在上面的执行过程中,也需要我们规范脚本和场景的命名规范,从而使很好的区分各自的场景执行时间。

 

 

规范脚本和场景

为了规范后面的脚本,场景和能够后面实现性能测试执行的自动化,现在统一规定:

在远程机中统一创建:script, Scenario,bat,result四个文件夹。每个文件夹中统一按照版本/项目组格式命名:

比如:

1117版本中test项目中的test场景:

 

script中:/script/1117/test/test

Scenario中:/Scenario/1117/test/test_100.lrs (说明:场景中并发人数不同分别用下划线人数区别)

bat中分为两个bat:场景bat/bat/场景bat /1117/test/test_100.bat ,

 

执行计划bat/bat/执行计划bat /1117/test/执行bat/test_100.bat;

 

其中test_100.bat中的命令是调用lrs命令:

cd  d:\ProgramFiles\HP\LoadRunner\bin

d:

wlrun –TestPath d:\Scenario\1117\test\test_100.lrs –ResultNamed: result\1117\test\test_100  –Run

执行test_100.bat 中:

schtasks /create /tn "test1" /tr D: \bat\场景bat\1117\test\test_100.bat /sc once /st 14:55:40 /sd 2014/10/23 /ru SN\KFYFCS03/rp Administrator90

 

result中目录: result/1117/test/test_100

 

 

注意事项:

1.执行test_100.bat中的执行命令主要是调用lrs命令,在/st/sd后面的参数按照实际执行时间进行修改;

2. 场景bat中的–ResultName后面结果路径根据实际情况进行修改:比如分别要执行100并发和200并发时。

 

 

说明:

当上面的脚本和场景规范后,在后面执行场景时,就可以对bat中进行部分修改就能达到自动化的目的了:

场景脚本中:/bat/场景bat/1117/test/test_100.bat

cd  d:\ProgramFiles\HP\LoadRunner\bin

d:

wlrun –TestPath d:\Scenario\1117\test\test_100.lrs–ResultName d: result\1117\test\test_100  –Run

 

执行脚本中:/bat/执行计划bat /1117/test/执行bat/test_100.bat

 

schtasks /create /tn "test1" /trD: \bat\场景bat \1117\test\test_100.bat /sc once/st14:55:40 /sd

 

2014/10/23 /ru SN\KFYFCS03 /rp Administrator90

 

只需要修改红色部分即可;

 

在执行时,直接进入到/bat/执行计划bat /中,双击执行bat就可以了;

 

 

在执行过程中还需要对后台服务器资源进行监控,也可以在Linux机器上进行nmon命令的任务计划执行:

Crontab –e进行设置

 

比如:想在晚上23点进行nmon执行(1111日,周二):

 

可以:

Corntab –e:然后进行任务编辑

 

00 23 11 11 3 /home/loguser/nmon/nmon –ft –s1 –c 1 m /home/loguser/nmon

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值