一、文件上传
最近做接口测试遇到了上传文件的功能,记录整理一下。
1.抓包从headers里查找上传文件的参数
- 1.用chrome记录网络传输,然后操作文件上传。
- 2.进入网络截取的头文件信息,下面有这个东东request payload
- 3.-------第一段意思大概是上传的文件名称,这个filename只是一个上传的临时变量。
- -----第二段是上传的参数名。我们要的就是这个参数名certFile
- ----第二段是使用的什么方法和参数。{upload:submit Query}.
2.添加http请求后,在files Upload选择上传文件,并输入文件参数 和 MIME-Type
Content-Type:application/octet-stream
到这一步已经可以正确的上传文件了,下面是我上传失败遇到的问题。
-------------------------------------------------------------------------------------------------------------
新做一个项目遇到上传zip失败,在此总结一下。
先介绍一下httpRequest的几个参数
- 自动重定向:勾选后,当发送HTTP请求后得到的响应是302/301时,自动重定向到新的页面
- 跟随重定向:勾选后,与自动重定向不同的是,会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容,并对响应的内容做关联
- Use KeepAlive:勾选后,和目标服务器之间使用Keep-Alive方式进行HTTP通信
- Browser-compatible headers:勾选后,当使用multipart/form-data时,会只发送Content-Disposition标头
着重看一下勾选Browser-compatible headers的效果:
未勾选时显示 Content-Type 和Content-Transfer-Encoding
勾选时不显示Content-Type 和Content-Transfer-Encoding
其中第二部分显示的Content-Type:application/zip显示的不是头信息里的,显示的是Body体里的MIME-type
总结失败原因:
目前发现在头信息里添加了Content-Type:multipart/form-data; 就会导致上传文件失败,勾选Browser-compatible headers不知道是冲突还是怎么了,感觉忽略不起作用。最后的解决方法就是在头信息里删除该项,勾选Use multipart/form-data for POST即可。
二、文件下载
1.添加http request,下面添加后置处理器 Beanshell Postprocessor
2.后置处理器,添加如下代码
3.下载文件到指定目录,如下图效果