本文来介绍一下笔者安装与使用LoadRunner的过程。
笔者安装过程参考的教程:LoadRunner2020下载、安装步骤和简单使用

download
.exe文件,出现如下界面:
目录名建议全英文),点击next等待安装即可。确定

LoadRunner,点确定
next
下一步
安装


virtual User Generator,以管理员身份运行
create
C语言)



VUGen(virtual User Generator)录制。GB-X:2byte=16bit, 65535组合,0000 0000 0000 0000 ~ 1111 1111 1111 1111
UTF-8:3byte = 24bit, 2^24, 16777216种组合,对全世界的文字进行统一编码。
ASCII码只会占用1个字节
录制过程中乱码解决
举例:
更改设置后重新录制


运行过程中乱码解决




保存并关闭记事本文件后,发现添加成功。
添加列
两列之间用逗号间隔
n行作为第一行)

{}括起来lr_eval_string("{...}")

random
action从Run Logic Tree中删掉)
code
result
unique number开始与结束代码脚本

passed transcation通过的事务failed transcation失败的事务LR_AUTO是根据响应的状态码来判断事务是否成功,没有深入到业务逻辑层面,所以,这种方式统计事务是否成功是不准确的。所以需要引入检查点。Duration:事务持续时间Wasted time:事务执行时浪费的时间(思考时间)检查点单独使用没有意义,要和事务结合起来使用。
web_reg_find,从响应当中查找特定内容、特定标识,来决定请求是否成功提交。什么是思考时间?
没有对服务器施加压力的时间暂停发送请求的时间为什么需要思考时间?
思考时间函数
lr_think_time(秒);思考时间在LR中的应用

适用场景:并发测试(主要关注大量用户并发的时候)
发请求提交同一个请求模拟真实场景
不能模拟真实场景系统的瓶颈,是压力测试的一个子集
【处于比较好的利用率,但又没有到达瓶颈。如:3/4】:系统处于最佳状态插入集合点脚本

注意:集合点要放在事务的外面,否则,事务会统计集合点的等待时间。

如图所示是集合点的等待时间:

全自动的功能不要用,使用价值很低。
不建议把所有脚本放在一起做性能测试。
做性能测试时,尽可能评估最少的模块,用户使用频率最高的模块。

控制性能测试场景

RAMP UP和RAMP DOWN应遵循的原则:
控制性能测试场景的难点在于:
并发多少用户是合理的。多少时间Duration是合理的。
输入IP地址:

Scenario -> Convert Scenario

windows指标:



把学习资料当成字典!我们没有必要去背字典,我们需要掌握查字典的方法,需要的时候会用就行。
结果分析时,用得最多的是
关联分析(将多个图表放在一起对比查看)
从用户角度感受到的性能指标
%Processor TimeProcessor Queue Length 2*内核数接收的数据量,低于下行带宽/8发送的数据量,低于上行带宽/8page/sec,越低越好
页是内存的管理单位系统级性能优化的时候:重点利用缓存,可以提升不少性能。代码级性能优化的时候:SQL语句,算法(减少内存,用好内存,减少运算次数【减少CPU消耗】)硬盘区域模拟内存模块
线程:主要消耗的是CPU资源。CPU资源是有限的。
多线程
线程池:本质上还是线程。是用于管理多线程的一种机制响应时间RT为3秒,60秒时间内可以发送20个。问:每发一个帖子后,暂停2秒,请问60秒可以发几个帖子?动态影响到响应时间RT,此时,响应时间可能会减小,比如RT=2.5秒。因此,这种情况下所能发的帖子数量是大于12个。C-S-D:瓶颈可能出现在任意一层。问:S端线程数量是100,调整成1000个,可以吗?服务器的硬件资源(主要是CPU)所能承受的相对合理的指标。
服务器可以支撑,这时没有其他的问题?数据库能处理的量。
性能测试顺序:
设计方案、开发脚本、执行场景、结果分析、测试报告
网上找到的并发用户的计算方法是错误的,无任何参考价值。
Discuz和Phpwind性能对比:
测试目标: