当前位置:网站首页>JMeter之上传文件和下载文件
JMeter之上传文件和下载文件
2022-07-21 05:20:00 【测试超有范】
内容概要
1、上传下载的原理
2、如何在jmeter中实现上传、下载
3、上传文件、下载的接口如何做参数化
4、下载接口如何断言
5、保存jmeter下载的文件
6、内容拓展学习
上传下载的原理
上传原理:浏览器将本地文件内容通过HTTP发送到服务端,服务端接受到数据后,创建创建一个文件
下载原理:同上传原理,下载是服务器把文件内容发送客户端,客户端接收到内容后,创建文件储存;
最终来说:传输的是数据而不是文件!
如何在jmeter中实现上传、下载
文件上传方式
表单方式
上传文件、下载的接口如何做参数化
使用CSV配置元件循环读取,脚本准备如下举例,大小用于断言;
注意:大小值的是文件属性里的字节大小。
下载接口如何断言
针对指定文件上传后,再下载时的对比得知,响应头里的Content-Length(这里文件内容的总长度,包括最后的回车)值等于文件的大小。
即,可以使用大小断言进行下载结果的断言
另,不同的接口返回的值可能不一样,可根据实际调试后取不同的断言方式,如下图的请求结果,返回的大小会大于文件的实际大小,是因为这个大小包含了请求头、请求内容等非文件的内容,所以结果上是大于文件的本身,这个时候可以使用大于等于断言。
保存jmeter下载的文件
通过‘上传下载的原理’得知,通过页面下载文件时,创建文件其实是浏览器的行为,并不是HTTP本身提供的能力,而JMeter本身也不会自动帮我们创建。
所以,如下图,请求下载接口后,得到是一串看不懂的数据流,这说明下载接口请求是没有问题的,若想要把下载请求到的内容展示出来,需要在JMeter里额外做处理。
添加BeanShell 后置处理程序并配置:
文件类型需跟进实际进行修改,或也可根据链接进行动态生成~
import java.io.*;
byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回
//单个下载
//String file_name = "D:\\apache-jmeter-5.1.1\\data\\7891.xls";
//批量下载
String file_name = "D:\\"+System.currentTimeMillis()+".xlsx"; //代表存放文件的位置和文件名,将每次下载的文件都重命名,后缀为xlsx(防止相同文件被覆盖)
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
下载结果展示:
内容拓展学习
1、上传文件multipart form-data与boundary 说明
4、文件的上传和下载
边栏推荐
- Jenkins搭建
- Use of main function with command line parameters
- 遵守指南,快速提升自己:功能测试如何快速转向自动化测试
- How do you understand automated testing? Understand the purpose and essence of automated testing
- Postman工具的灵活运用
- postman newman jenkins
- 拼夕夕面試題之優惠券超發怎麼去測試?
- Use case exercise 1
- “jmeter使用xpath提取器获取请求响应中的value值作为下一个请求的输入”案例
- 整数变换问题
猜你喜欢
Twincat3 uses FIFO to collect the position information of three axes, generate XML files, and solve common error reports
“cannot get hvm parameter CONSOLE_EVTCHN (18): -22!” Solution of
Audio and video development learning notes (I)
What to do if the research and development quality is poor
用例练习1
【初识Jmeter和线程组】
连接以前可用的MySQL数据库报10061 unknown error 错误
Flexible use of postman tools
Test case exercise 2 - vendor account information
[advanced semiconductor process technology series] SOI Technology (middle)
随机推荐
Is it feasible to enter software testing at the age of 28?
页面重定向
类的继承性实验报告
软件测试常问面试题【二】
jmeter脚本生成基于rap2
“cannot get hvm parameter CONSOLE_EVTCHN (18): -22!”的解决方法
2021-06-22
Day01 软件测试基础总结
Audio and video development learning notes (I)
产品总是临时加需求,怎么办
基础的md5加密
The company has only one test, but the leader asked me to test 10 projects
The solution of "the client page cannot be loaded" after running CS project with idea
整数变换问题
2022年最新软件测试工程师笔试真题及答案(搜狐、华为、蓝港在线)
Using array plus function to count the average score of students in a class
2021-06-22
Super detailed - working principle of NMOS and PMOS and related content sorting (Part 1)
Postman's body reports the solution of "expected" and "instead of" P "
MySQL经典面试题 14 道