压力测试LoadRunner使用

时间:2023-02-04 23:18:41

性能测试包括:

a) 验收性能测试
b) 负载测试:通过在被测系统上不断加压,可以了解系统的性能容量(系统在保证一定响应时间的情况下,能够允许多少并发用户的访问),或是用来配置性能调优,以比较调优前后的性能差异。
c) 压力测试:测试系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理会话的能力,以及系统是否会出现错误。——用于测试系统的稳定性。
d) 配置测试:通过配置系统软硬件环境,了解各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则。一般在对系统性能状况有初步了解后进行。——用于性能调优,或评估如何调整才能实现系统的扩展性。
e) 并发测试:可以检测系统中的内存泄漏、线程锁和资源征用方面的问题。并发测试主要关注的问题:

内存问题

  • 是否有内存泄漏(C/C++)
  • 是否有太多的临时对象(Java)
  • 是否有太多的超过设计生命周期的对象(Java)

数据库问题

  • 是否有数据库思索
  • 是否经常出现长事务
  • 是否出现线程/进程同步失败

其他问题

  • 是否出现资源征用造成的死锁
  • 是否没有正确处理异常(如超时等)导致系统死锁

f) 可靠性测试
g) 失败回复测试
系能测试工具包括两个方面:
h) 服务端性能测试工具 LoadRunner、SilkPerformance等。这些工具需要支持产生压力和负载、录制和生成测试脚本、设置和部署场景,偏重于在在给应用系统一定压力的情况下观察应用系统的表现。
i) 前段性能测试工具:Firebug、YSlow等,这些工具通过浏览洗的接口,在浏览器展现和处理Web页面时获得浏览器处理Web页面时的信息,以让开发者和测试者能够通过某些针对Web前端的改进,提高Web应用的前端系能。

LoadRunner

1、录制脚本:

需要选择32位版本的ie浏览器,下载完整版后,需要进行破解

1.1录制option
1)Recordind标签:
①基于浏览器的应用程序推荐使用HTML-based script;
②不是基于浏览器的应用程序推荐使用URL-based script方式;
③如果基于浏览器的应用程序中包含JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based方式录制。

2、编辑脚本

2.1可以选择不同的视图,script模式位代码视图,Tree模式位树形视图;
2.2在Tree视图中,选择插入事务。
Analysis应用会针对事务对Response Time进行统计,例如,脚本中有一个“查询”操作,为了明确知道“查询”操作所需要的响应时间,把这个操作定义为一个事务,这样在运行测试脚本的时候,LoadRunner运行到该事务的时候,会开始计时,知道运行到该事务的结束点,计时结束。
必须插入一个事务,然后才能进行压力测试,对于未设置位事务的接口,loadrunner只负责跑一遍,并不会进行数据统计。调用Start Transaction 和End Transaction将接口包围。
2.3 插入集合点
插入集合点可以测试在加重负载情况下服务器的性能情况。 如果需要测试1000个并发,则LR会检查同事有多少用户运行到集合点,如果不到1000人,LR就会命令已经到集合点的用户等待,当在集合点的用户达到1000人时,LR会命令这1000个虚拟用户同时去提交数据,从而达到测试计划中的需求。

2.4 插入函数
1)控制脚本流程 if-else, while, for等
2)字符串函数 strcmp,strcat(连接两个字符串),strcpy等
3)输出函数(非常有用) lr_output_message():输出一条消息
4)LR标准函数
lr_eval_string() 得到参数当前的值
lr_save_string() 把一个字符串保存到参数中
2.5 插入Text/Image检查点
在VuGen中插入Text/Image检查点,可以验证网页上是否存在指定的Text或Image,可以测试在比较打的压力测试环境中,被测的网站功能是否保持正确。

3)对于接口测试,为了校验压力环境下接口的稳定性,需要对结果进行检查,可以使用web_reg_find函数,定义正确结果。如果失败,lr会纪录下来。

3、运行测试

3.1 Run-Time-Setting
路径:录制面板中的菜单VuGen-> Run-Time-Setting
1)Preference->Advance->No-critical resource errors as warning可以避免测试中出现一些图片或者js文件找不到页面而导致的测试失败
2)Preference->Checks->Enable image and text check,如果需要对Text/Image进行检查,必须勾选。
3)Miscellaneous->Error handling可以设置错误处理方法
4)Miscellaneous->Multithread,选择以进程/线程的方式调度VuGen,默认线程,可以节省资源
5)General->Run Logic可以控制脚本迭代的执行次数。除了能够指定Action部分的迭代次数外,Lr还允许用户通过逻辑组合的方式控制多个不同的Action部分的执行顺序和执行方式。可以插入一个Block,一个Block中可以放置多个Action,一个Block执行50次,其中随机选取一个Action进行执行。

1)在Scenario Scripts(左上画布)
中,选择 Run-time Settings for script,设置每一个虚拟用户请求次数(连续请求了十次www.360.cn网站)
2)在Global Schedule中,选择Start Vusers编辑请求的虚拟用户数、虚拟用户触发周期(m个/n秒);选择Duration设置结束时间。
3)在菜单栏中的Scenario->Load Generators中,设置发起压测的机器,本机的话name设置位127.0.0.1,点击connect进行连接。
4)Scenario->Start,进行压测。