单接口性能测试
单接口性能需要如何操作?单接口性能需要关注哪些数据?
单接口性能测试方法:
工具:jmeter
使用Jmeter发起一个HTTP请求,Request为Json格式
1.创建测试计划:右键测试计划 -> 添加 -> 线程(用户) -> 线程组
2.右键线程组 -> 添加 -> 取样器 -> HTTP请求
3.录入接口信息:我们使用抓包工具抓取到了博客园的获取全站动态的接口,以此为例,接口如下
1 获取最新10条博客文章 2 Url: https://home.cnblogs.com/ajax/feed/recent 3 4 HTTP Method: Post 5 6 Request: 7 { 8 "feedListType":5, 9 "appId":"", 10 "pageIndex":1, 11 "groupId":"" 12 }
4.添加一个HTTP信息头管理器:这里存放Request Headers,因为jmeter默认的请求数据类型是form的,所以使用json格式的请求数据需要在HTTP信息头管理器中设置
1 Content-Type: application/json; charset=UTF-8
5.最后添加一个查看结果树来查看请求的响应数据
6.运行HTTP请求,我们可以看到返回数据就是博客园的最新动态了
Request为Form格式
1 Url: https://data.cma.cn/weatherGis/web/weather/weatherFcst/getCurrentCondition 2 3 HTTP Method: Post 4 5 Request: 6 staId: 54511
1.步骤与json格式的基本相同,需要修改的点在于Requset Data的位置
2.因为是form格式请求数据,所以HTTP信息头管理器中的Content-Type要设置为
1 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
3.设置完成运行HTTP请求然后查看结果树就可以看到请求的响应数据了。
原文出处:https://www.cnblogs.com/ezrealli/p/11343866.html
单接口性能测试关注点
基本性能测试:
1、QPS;
2、平均响应时间;
3、吞吐率;
4、错误率;
5、空结果率;
需要压测求出极限QPS,然后查找到系统瓶颈,比如你压测到130个线程,QPS到达1500后不再上升,那么此时就需要查看CPU、磁盘IO、内存、以及网卡流量等查找系统瓶颈在哪里;
如:nlp压测时结论:hot_new接口shyc2机房最高QPS能达到2300左右,带宽占用最大在800M左右;根据压测结果显示整体性能的瓶颈不受限于CPU和带宽,据分析可能与网络IO有关;
稳定性测试:
需要选择cpu达到50%左右时的线程数进行压测,否则压测意义不明显;
1、QPS
2、CPU占有率;
3、磁盘IO波动;
4、内存是否存在泄漏,但存在部分程序比较特殊,xx引擎title人名策略测试:内存一直增加,沟通后得知,此接口的内存是不会释放的,会一直增加,但增加到一定数值(目前看大概增加到5G后逐渐趋于平稳);
5、网卡流量,分为内网和外网流出进入等;
6、是否有coredump(核心转储)文件产生;
7、数据库的写入;
单机并发计算
单机pv = pv量/10个机房/机器数
QPS = 单机pv/10h(高峰)*3600