jmeter也可以上传文件,但是遇到一个问题,单个上传文件的接口没问题,如果和其他接口放一起就不通了。先放一个上传文件的截图

红框的地方直接全勾上,上传文件的请求头是Content-Type=multipart/form-data,而且这个不能像常规那样,写在http信息头管理器里面,必须勾选这里的。
文件名称就是本地文件绝对路径,路径有中文好像不太好使,还是尽量都英文吧。参数名称是自己接口的参数名。MIME常见类型,放在下面了
|-----------------|---------------------------------------------------------------------------|
| .txt | text/plain |
| .jpg, .jpeg | image/jpeg |
| .png | image/png |
| .pdf | application/pdf |
| .doc | application/msword |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| .xls | application/vnd.ms-excel |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| .zip | application/zip |
| .mp4 | video/mp4 |
如果还有其他接口,而且写了一个公用的信息头管理器,那每个接口的默认请求头都是Content-Type= application/json,这个优先级还特别高,会导致上传附件报错。大概下面这种情况

这时候需要用beanshell去掉默认请求头,还是用JSR223 预处理程序,语言选择beanshell
java
import org.apache.jmeter.protocol.http.control.HeaderManager;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 删除请求头指定的信息
sampler.getHeaderManager().removeHeaderNamed("Content-Type");
放上这段代码就可以了