JMeter接口测试-压力测试

压力测试:

(1)压测任务需求的确认

API有无缓存,即用固定接口参数进行压测还是进行接口参数随机化压测,要求支持多少并发数

服务器每秒处理的请求数目标是多少?每个request的平均响应时间目标是多少?

 

(2)压测设置

 线程数:并发数

Rame-Up Period(in seconds):表示JMeter每隔多少秒启动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是50人,准备时长为5秒,那么需要5秒钟启动50个数量,也就是每秒钟启动10个线程。

循环次数:在不设置调度器的情况下,发起的总请求数=线程数*循环次数

调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。一旦设置了持续时间,就需要把循环次数勾上永远,否则在持续时间内达到循环次数,线程数就会停止运行。例如线程数设置10人,循环次数2次,持续时间60秒,点击运行,假设在第30秒,10个线程数已经循环跑完2次了,即发起了20次请求,那么在第31秒到60秒这个时间段,线程数就停止运作了。

 

 

 

 

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

 

            Samples:表示你这次测试中一共发出了多少个请求

 

            Average:平均响应时间——单个 Request 的平均响应时间,单位毫秒

 

            Median:中位数,也就是 50% 用户的响应时间,单位毫秒

 

            90% Line:90% 用户的响应时间

 

            假设总的请求数为10次,响应时间由小到大分别是55、56、57、58、59、60、61、62、63、64(单位毫秒),90%用户的响应时间是第90%个数(总共10个数),即第9个数63,表示           90%的请求响应时间没有超过63毫秒

 

            95% Line:95% 用户的响应时间

 

            99% Line:99% 用户的响应时间

 

            Min:最小响应时间

 

            Max:最大响应时间

 

            Error%:本次测试中出现错误的请求的数量/请求的总数

 

            Throughput:吞吐量——表示每秒完成的请求数(Requests/Second)

 

            KB/Sec:每秒从服务器端接收到的数据量

 

(4)在sandbox环境用Jmeter做压测,在线程数设置的比较多的情况下,例如200,300个线程跑3分钟,我遇到过在执行过程中Jmeter会卡死,报内存溢出outofmemory错误。

 

            解决方法:

 

            用notepad打开Jmeter.batch文件,

 

            把

            set HEAP=-Xms256m -Xmx256m

 

            set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

 

            改为:

            set HEAP=-Xms256m -Xmx1024m

            set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

 

            重启Jmeter

 

posted @ 2020-12-31 14:52  Mr.Chiang  阅读(1509)  评论(0编辑  收藏  举报