文件上传接口测试
1. 接口测试之图片上传
1、先是在线程组下边创建一个http请求
2、所有的相关上传图片的设置都在http请求里面
3、里面的请求类型改成post,(图片上忘记改了)最重要的lmplementation一定要设置为java
4、文件名称一定要图片的完整路径加图片名加后缀
5、mime类型比如jpg格式的图片就填成image/jpg
use multipart/form-data for POST:蠢闷档使用不对数据进行编码的提交表单形式
browser-compatible headers:浏览器兼容请求头
步骤:
1、http上传附件一般用的Content-Type: multipart/form-data;文中是先通过fiddler抓取接口的请求,然后通过jmeter模拟该请求,如果有接口文档,则可以跳过抓包这个步骤
fiddler抓包的数据放大图片
2. 我们先把header的信息放置HTTP信息管理器中
3.再把fiddler中webforms的信息复制到jmeter的http请求的parameters中,注意:parameters的名称只保留fiddler中webforms的name值,如下图和步骤一的图对比,并勾选Use multipart/form-data和Browser-compatible headers。
4. 将需要上传图片的名称 “ name = img_texture ”,点击files upload,放在该项下面
详细解释:
文件名称:罩汪需要上传图片存放的位置,精确到图片本身,如本例:C:\Users\Public\Pictures\Sample Pictures\tp_1.jpg
参数名称:这里指的是fiddle抓包中 WebForms中的需要上传图片的参数,name='' '' 的值,如本例中是 name="img_texture"
MIME类型:选择fiddler中webforms抓到的该行带乱的Content-Type值,本例中是 file
5.最后一步很重要,点击jmeter请求的advanced选项,选择implementation为java
6.运行后即可看到返回值
2. Django REST framework编写图片上传接口并测试
在做接口自动化时,有时会遇到图片上传的接口,这时Content-Type就不是application/json。
这春差里使用DRF编写一个图片上传接口,并测试。
一、编写图片上传接升唯口
首先创建一个我们希望用来存放文件的文件扒笑皮夹,并且在settings.py中配置路径:
在项目的urls.py中配置media的路由:
在应用的models.py中创建模型:
并且在serializers.py中创建序列化:
编写视图views.py:
给应用的urls.py配置路由:
最后我们测试一下:
3. 视频上传接口测试实践
1)水印没有显示出来的问题(不支持https的地址)
2)个别视频无法播放(转码失败)
3)视频文件名包含中文会出现乱码问题(JSONRPC里面没有填写title导致的)
1)writetoken(上传钥匙)正确,JSONRPC(视频信息高纯)正确,Filedata(视频文件)正确,上传成功
2)上传各种正确格式的视频(flv,avi,mpg,mp4,wmv,mov,3gp,asf等),上传成功,可正常播放
3)format=xml,上传戚滑咐成功,接口返回的数据为xml格式,视频可正常播放
4)format=json,上传成功,接口返回的数据为json格式,视频可正常播放
5)format参数值不正确的情况
6)format参数值为空的情况
7)fileMd5(文件校验码)正确,上传成功,可正常播放
8)fileMd5(文件校验码)不正确的情况,上传失败
9)fileMd5(文件校验码)为小写字母的情况
10)jsonp的内容正确,上传成功,可正常播放
11)jsonp的内容不正确(包含空格等特殊字符)的情况
12)jsonp的内容为空的情况
13)cataid(视频分类编号)正确,上传成功,可正常播放
14)cataid(视频分类编号)不正确的情况
15)cataid(视频分类编号)为空的情况
16)watermark(水印)正确,上传成功,可正常播放,水印正常显示
17)watermark(水印)不正确的情况
18)watermark(水印)为空的情况
18)水印图片分辨率过大的情况
18)水印图片的URL是https的地址
19)JSONRPC里面没有视频标题,视频文件名包含中文的情况
20)JSONRPC里面没有视频标题,视频文件名过长的情况
21)JSONRPC里面没有视频标签的情况
22)JSONRPC里面没有视频描述的情况
23)JSONRPC里面没有视频标题,标签,描述的情况
24)JSONRPC里面视频标题为空的情况
25)JSONRPC里面视频标签为空的情况
26)JSONRPC里面视频描述为空的情况
27)JSONRPC的内容的格式错误(非JSON格式),上传失败
28)JSONRPC没有或者为空,上传失败
29)Filedata没有或者为空,上传失败
30)视频文件格式不符合要求(非视频文件),上传失败
31)视频文件过大,上传失败
32)视频标题过长,上传失败
33)视频标签过长,上传失让游败
34)视频描述过长,上传失败
35)writetoken不正确,上传失败
36)writetoken过期,上传失败
37)writetoken没有或者为空,上传失败
38)fcharset为ISO-8859-1,JSONRPC里面没有视频标题,视频文件名包含中文,上传成功
39)fcharset参数值不正确的情况
40)fcharset参数值为空的情况
41)luping(是否压缩)的值等于1的情况
42)luping(是否压缩)的值等于0的情况
43)luping(是否压缩)的值不正确的情况
44)luping(是否压缩)的值为空的情况
45)剩余空间不够的情况
视频上传成功,但是显示的视频标题为乱码
视频上传成功,并且视频标题没有出现乱码
视频成功上传到自动化分类
方案1:
方案2:
[01] Postman用法简介
https://blog.csdn.net/flowerspring/article/details/52774399
[02] postman官方教程
https://www.getpostman.com/docs/v6/postman/sending_api_requests/requests
[03] 使用postman测试接口时需要先登录怎么办
https://blog.csdn.net/pengbin790000/article/details/79386500
[04] postman登录鉴权,获取token后进行其他接口测试
https://blog.csdn.net/qq_42512064/article/details/81034744
[05] 接口测试知识点
https://blog.csdn.net/binglin/article/details/78553242
https://www.jianshu.com/p/88f114efa0a0
https://www.cnblogs.com/bell1991/p/7241173.html
[06] 如何生成文件校验码
https://blog.csdn.net/jiajiren11/article/details/80341149
[07] jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
https://www.cnblogs.com/grimm/p/8339833.html
[08] Http请求中Content-Type
https://www.cnblogs.com/klb561/p/10090540.html
微信扫一扫关注该公众号【测试开发者部落】