一、压测文件上传接口
新建测试计划,然后添加需要的元件。
1、添加HTTP信息头管理器
可以在测试计划中添加,也可以在线程组里面添加。
我的接口使用到 token信息。这里在测试计划中添加。
2、添加线程组
上图解释:会在 2秒钟之内启动起来 5个线程,并且让这 5个线程,每个线程都循环调用接口1次。
3、添加HTTP请求
设置接口参数,需要注意:
- 不要在请求头加Content-Type:multipart/form-data,只需勾选-对post使用multipart/form-data即可。
- 文件上传参数:
- 文件名称:默认会查找测试计划所在的路径下的文件,我们可以使用绝对路径指定需要上传的文件。
- 参数名称:接口接受文件的参数名,一般都是file。
- MIME类型:使用application/octet-stream是可以的,最好与上传文档类型一一对应。
- 参数:接口需要的其他参数。
MIME 参考手册:https://www.w3school.com.cn/media/media_mimeref.asp
4、查看结果树
结果树当中会把对应的一个http接口返回的response都打印出来,可以选仅显示错误日志,仅显示成功日志。
结果树说明:
- 取样器结果:返回值报200,表示执行接口调试成功
- 请求:发送的数据
- 响应数据:返回的数据
其中取样器结果说明:
- Thread Name:线程组名称
- Sample Start: 启动开始时间
- Load time:加载时长
- Latency:等待时长
- Size in bytes:发送的数据总大小
- Headers size in bytes:发送数据的其余部分大小
- Sample Count:发送统计
- Error Count:交互错误统计
- Response code:返回码
- Response message:返回信息
- Response headers:返回的头部信息
5、聚合报告
聚合报告即压测过程结束时对每次请求及对整体请求的一次总结报告。
聚合报告说明:
- Label:HTTP Request name属性值。
- Samples:测试的过程中一共发出了多少个请求即总线程数,(如果模拟10个用户,每个用户迭代10次,这里就显示100),对应图形报表中的样本数目。
- Average:单个Request的平均响应时间,计算方法是总运行时间除以发送到服务器的总请求数,对应图形报表中的平均值。
- Median:50%用户的响应时间。
- 90%Line:90%用户的响应时间。
- Min:服务器响应的最短时间。
- Max:服务器响应的最长时间。
- Error%:本次测试中出错率,请求的数量/请求的总数。
- Throughput:吞吐量,默认情况下表示每秒完成的请求数。
- KB/Sec:每秒从服务器接收到的数据量,即每秒钟请求的字节数,时间单位均为ms。
6、图形结果
图形结果:压测时的整体参数可视化。
图形结果说明:
- 样本数目:总共发送到服务器的请求数。
- 最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
- 吞吐量:服务器每分钟处理的请求数。
- 平均值:总运行时间除以发送到服务器的请求数。
- 中间值:有一半的服务器响应时间低于改值而另一半高于该值。
- 偏离:表示服务器响应时间变化、离散程度测量值的大小。
二、Jmeter中文乱码问题
使用 Jmeter都会有遇见中文乱码的问题,主要有请求体中文乱码、响应报文的中文乱码以及文件上传的中文乱码。 原因是:Jmeter源码里默认的编码是ISO-8859-1。
1、解决请求参数中文乱码
在HTTP请求控件指向UTF-8,可解决请求中文乱码。
2、解决结果集响应数据中文乱码
在jmeter/bin路径下的 jmeter.properties,第1098行,将默认的 sampleresult.default.encoding=ISO-8859-1改为UTF-8
,最后重启JMeter工具。即可解决返回结果的中文乱码。
sampleresult.default.encoding=UTF-8
3、上传文件中文乱码
大家尽量使用英文文件名测试。本人没有尝试解决上传文件中文乱码,可参考下面文章。
参考文章:
- jmeter上传中文文件夹后页面显示乱码的解决方法:https://blog.csdn.net/qq_36800800/article/details/109284004
– 求知若饥,虚心若愚。