1、分配启动程序的内存,分配一个不足以支撑程序启动的内存或者不足以支撑程序完成请求的内存,那么就会出现内存泄漏或者请求时程序假死(模拟内存泄漏)
①、分配不足以支撑程序运行的内存
java -jar -XmsnM -XmxnM -XX:MaxMetaspaceSize=nm xxx.jar(n代表内存数),展示出OutOfMemoryError(OOM内存泄漏)
②、分配足以支撑程序运行但不支撑程序内部发送高并发请求的内存,那么这时候启动程序内部高并发请求,就会出现程序假死
2、远程监控JVM资源信息
①、命令 Java -Djava.rmi.server.hostname=101.43.158.84 -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=1099-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false -jar -Xms8m -Xmx512m -XX:PermSize=512M -XX:MaxPermSize=1G DBPlus-0.0.1-SNAPSHOT.jar
②、重新打开一个控制台输入jvisualvm后进入监控界面,点击远程,输入主机名称(主机IP地址)
③、右键IP地址,选择添加JMX连接,连接后跟上1099(上述命令中的端口号)
一、基于python的性能测试。
1、locust概述
(1)、locust:
是基于Python语言的性能测试工具,它是基于协程的思想来进行设计的。Python语言是没有办法利用多核的优势,所以了Python为了解决这个问题,设计了协程,作为协程的任务,遇到IO堵塞就立刻切换。 什么是协程,协程可以简单的来说就是微线程。
(2)、locust主要做负载测试和稳定性测试,也可以做压力测试
(3)、安装locust:pip3 install locust
2、WEB模式
(1)、启动WEB模式进行性能测试。
①、输入指令:locust -f locustfile.py(.py文件自己编写,后面学到python语言的时候会讲到,根据文件中的脚本格式判断做压力测试还是负载测试或者稳定性测试)
②、启动后在报文中找到启动占用的端口号,在网页中打开(http://localhost:8089),就会得到下图所示
③、界面信息简述:
Number of total users to simulate:设置模拟的⽤户总数
Spawn rate (users spawned/second):每秒启动的⽤户虚拟数
Host (e.g. http://www.example.com):被测的⽬标服务器的地址信息
④、设置好数据后开始性能测试
Type:请求类型(也就是请求具体是那个=⽅法)
Name:请求的路径地址信息
Requests:当前已完成的请求数量
Fails:当前失败的数量
Mediam(ms): 响应时间的中位数
90%ile (ms):90%的请求响应时间
Average (ms):平均响应时间
Min (ms):最⼩响应时间
Max (ms):最⼤响应时间
Average size (bytes):平均请求的数据量
Current RPS:每秒中处理请求的数量,也就是RPS
⑤、菜单栏简述:
New test:点击该按钮可对模拟的总虚拟⽤户数和每秒启动的虚拟⽤户数进⾏编辑; Statistics:聚合报告 Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;
Failures:失败请求的展示界⾯;
Exceptions:异常请求的展示界⾯;
Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、 exceptions
九、性能测试计划
1、计划部分内容解析
背景:描述具体是干什么,干这件事的前因后果
前置工作:干这件事需要有哪些准备工作
技术选型(工具): 测试范围:就是具体的工作内容
2、性能测试过程
测试前期准备(前置⼯作)
测试⼯具引⼊
基于梳理的业务场景,和服务底层稳定性体系的保障,性能测试⼯具的选择具体如下:
3、测试计划
背景
公司之前的测试团队做API的⾃动化测试都是使⽤JMeter等⼯具来进⾏,这样的话测试效率⽽⾔不是那么很⾼,⽽且在扩展性⽅⾯不是很有竞争⼒的。所以开发了新的测试平台,但是考虑到公司的测试⼈员有1000⼈,那么就需要 验证1000⼈同时使⽤测试平台,是否会出现平台⽆响应以及崩溃(雪崩)的情况。
前置⼯作
⼈员配备
技术(⼯具)选择
测试范围
测试⻛险
⽬前⽆⻛险(对存在的风险点进行描述协商解决)
4、测试设计与开发
JMeter⼯具
测试并发登录
产品列表加载
测试最简单的⽅式:
同时⽀持执⾏API测试⽤例
上传⽂件最⼤⽀持2G
测试⽅式是:关注点:上传时间、CPU占用、同时上传会不会出现内存泄漏(两个人同时上传1G的文件或者9个人同时上传小于1G的文件)
locust开发
⽀持持续的发送API请求
5、测试执⾏与管理
(1)、性能测试关注的指标
①、响应时间
②、CPU与内存的变化趋势
(2)、指标:
①、系统资源:CPU与内存
②、响应时间:最小,最大,平均,中位数,90%,95%,99%
③、吞吐量
④、IOPS,连接数
⑤、JVM的资源变化趋势关注
6、性能测试报告
(1)、参与人员
(2)、报告汇总
不同场景名称(100万用户、500万用户等)
过程数据: 系统资源 响应时间 吞吐量 IOPS
测试结论
(3)、测试风险
(4)、测试结论
标签:请求,性能,locust,响应,内存,测试 From: https://www.cnblogs.com/L2119/p/16613814.html