1、性能概念
(1)负载测试:逐步对系统施加压力(用户数),直到达到系统的临界值区间(关键词:逐步加压)
(2)压力测试(服务器稳定性):长时间+大压力,看软件系统是否能正常运行(时间:目前按照小时计算),大压力建议使用临界值的40+%左右来压测
(3)领导口中的压测:负载测试+压力测试
2、测试数据存放–csv文件
当我们行要从已知的数据中,作为测试数据,如从数据库提取一批数据作为测试数据,那么怎么把这批数据导入到脚本当中呢,
如下:
(1)先在bin目录下建立一个文件,把需要的数据存放到这里:
注:多个数据用逗号隔开,注意是英文逗号
(2)在线程组中添加csv文件配置
(3)在需要的接口输入引用变量名称即可,如下图:
(4)如何读取和接收读两个/多个变量?
通过逗号分隔,注意下图的分隔符要和文本中的分隔符一致,一个变量接收一个值,第一个接收第一列,第二个接收第二列。
通过查看结果数可以发现,接口请求的参数,就为文本中的第一组参数
注:当我们测试数据文件路径发生变化时,为保证其他人使用不出问题,我们在文件路径中建议使用相对路径,保证文件在jmeter的bin目录即可
(5)循环条件设置和线程停止条件设置
如下图:遇到文件结束停止线程设置为true,我们数据文件有五组数据,但是我们设置了10个线程,结果就读完数据不再循环,即5次请求
如果把true改成false,如下:线程不会停止,但是数据已经读取结束
总结csv配置文件:
- 文件可为txt和csv文件格式,接收值读取按列读取。
- 做性能测试建议使用txt文件格式,读取数据消耗资源相对少一点,且默认编码格式也默认为utf-8,csv容易出现乱码
3、压力场景设计
3.1 线程数如何配置
单台电脑上,线程数最大设置1500
3.2 ranm-up时间什么含义
在设置时间内生成设置的用户数,设置这个时间的意义是避免服务器瞬间工作,资源不够用的问题。设置常规数据:
(1)100以内设置1s
(2)500以内设置2s
(3)1000以内设置4s
(4)1500以内设置6s
3.3 循环次数
总的线程数做几次任务,设置一次即做一次,设置2次即每个线程做两次
3.4 持续时间
如果像要将我们设置的线程数在规定的时间内持续运行,那就勾选如下图的地方,持续时间才会生效
3.5 聚合报告
思考?
- 单位时间内,5个线程循环100次和100个线程循环5次的区别
(1)首先第一种场景:5个线程循环100次,是5个用户慢慢循环,对服务器的压力是很小的。
(2)第二种场景:100个线程循环5次,100个线程对服务器压力明显比5个大,两种场景对服务器的压力是不同的,同时运行的用户数不同。
4、负载场景设计
(1)安装jpgc standard set 插件,先把插件jmeter-plugins-manager-1.4.jar复制到\apache-jmeter-5.0\lib\ext下,复制完成后重启jmeter,即可进行上面jpgc standard set 插件的安装
(2)在测试计划添加如下线程组(负载测试场景设计)
执行结果1:
执行结果2:
执行结果3:
5、压力场景设计
(1)第一种是通过线程组设置持续时间来测压力
(2)波浪式设计和应用场景
案例:点餐系统在中午11-1点和下午5-7点这两段时间是用户点餐高峰期,根据这个实例如何来设计场景
- 在测试计划添加如下线程,根据性能需求设置数据;
- 根据第一个波峰运行总时间设置第二个波峰的时间,如下图yig波峰是100s(下一个波峰的启动时间要大于等于上一个波峰的总时间);
(3)波浪式场景也可以通过修改设置来做压力场景测试,如下:
资源监控和结果分析持续更新。。。