图片上传接口测试
1. 视频上传接口测试实践
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
微信扫一扫关注该公众号【测试开发者部落】
2. 接口测试之图片上传
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.运行后即可看到返回值
3. Django REST framework编写图片上传接口并测试
在做接口自动化时,有时会遇到图片上传的接口,这时Content-Type就不是application/json。
这春差里使用DRF编写一个图片上传接口,并测试。
一、编写图片上传接升唯口
首先创建一个我们希望用来存放文件的文件扒笑皮夹,并且在settings.py中配置路径:
在项目的urls.py中配置media的路由:
在应用的models.py中创建模型:
并且在serializers.py中创建序列化:
编写视图views.py:
给应用的urls.py配置路由:
最后我们测试一下:
4. 如何做接口测试
1、可以使用postman软件进行接缓虚族口测试,这里以较复杂的上传图片的接口为例进行测试,首先打开postman软件选择Post方式扰弊,输入后台接口调用地址。
5. 接口测试面试常见问题
1.什么是接口测试?
·接口测试是测试系统组件间接口的一种测试方法。
·接口测试的重点是检查数据的交换,传递的正确性,以及接口间逻辑依赖关系
·提交接口测试的重要意义:实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期。
2. 接口自动化测试的流程是什么?
·基本的接口功能自动化测试流程为:需求分析->用例设计->脚本开发->测试执行->结果分析
3. GET请求和POST请求区别是什么?
· GET请求用于信息获取,而且应该是安全和幂等的;在做数据查询时,建议用get方式。如:商品信息接口、搜索接口、博客访问接口等。
· POST请求表示可能会修改服务器上资源的请求;在做数据添加、修改时,建议用post方式,如:微博贴吧上传图片接口、登录注册接口等。
GET是从服务器上获取数据,POST是向服务器传送数据。这个说法是有误的。GET/POST都可以提交数据。Get请求也可以向服务器传递数据。Post请求也需要服务器返回数据。
4. 接口测试的常用工具有哪些?
· Postman
·Jmeter
·SoapUI
5. HTTP接口的请求参数类型有哪些?
·查询字符串参数(Quert string Parameters),参数会以url string的形式进行传递。
·请求提参数(Request body)一般用于POST请求,可以使用Content-Type来指定不同参数类型
6. 如何从上一个接口获取相关的响应数据传递到下一个接口?
先从上一个接口中的响应数据获取对应的返回值,然后使用正则表达式或者拍雀json解析来提取要获取的值,然后存储在一个变量中,最后在下一个接嫌旅口中直接引用即可。
7. 接口测试用例的编写要点有哪些?
· 请求参数必填项、可选项等
·输入输出合法、非法参数等
·请求参数边界值等
·响应数据校验
·接口之间逻辑校验,如果两个请求有严格的先后顺序,需要测试调转顺序的情况
8. 接口测试的步骤有哪些?
发送接口请求
测试接口获取的返回值
断言:判断实际结果是否与预期相同
9. 接口测试中依赖登陆状态的接口如何测试?
依赖登陆状态的接口本质上是在每次发送请求时需要带上Session或者Cookie才能发送成功,在构建POST请求时添加必要的Session或者Cookie
10. 依赖第三方数据的接口如何进行测试?
可以利用一些MOCK的工具(如Json Server,Easy Mock)芹贺凳来模拟第三方的数据返回,最大限度地降低对第三方数据接口的依赖。
6. 【接口测试】0 接口测试工具Postman简介
从今天开始,会持续更新一款接口测试必备工具-postman的系列使用文章,每天会更新一篇postman的使用技巧,希望对工作中用得到该工具的同学有所帮助。
Postman 最早是google的一个插件让空存在的,但是又google退出中国以及postman团队对工具的定位,主攻pc端app的开发及优化,现在的google插件已经很少再使用了,postman虽然是一个商用软隐袭件,但是对于我们普通用户来说,基本功能完全够用的。
Postman 从最初设计上就是为接口测试而生的,所以在程序员中广泛使用,在开发调试网络程序时跟踪一些网络请求,能够高效的帮助后端开发人员独立进行接口测试。
我们来看一下postman的主要功能:
1、Postman是一款功能强大的网页调试、HTTP请求发送及接口测试用例运行的工具
2、能够模拟各种HTTP Request如GET、POST 、header、 PUT、 DELETE…等等
3、请求中还可以发送文件(图片、文本文件等)、额外的header等,实现特定的接口测试
4、能够高效的帮助后端开发人员独立进行接口测试
5、Postman提供了云服务,支持数据同步及团队协作等
6、提供了丰富的HTML格式的报告模板
7、不仅仅进行坦携瞎接口测试,而且是一个API管理工具
8、Postman是一款最常见的REST风格接口测试工具。
9、.................
在后面的系列文章中包括但不限于下面的专题:
1、Postman 工具的安装及注册
2、Postman接口测试的流程
3、Postman 发送get请求
4、Postman 发送post请求-x-www-from-urlencoded格式参数使用
5、Postman 发送post请求-form data格式参数使用(file文件上传)
6、Postman 发送post请求-Json格式参数使用
7、Postman 环境变量的使用
8、Postman pre-requests的使用
9、Postman test断言功能的使用
10、Postman Runner的使用
11、Postman Data数据文件处理
12、Postman monitor功能使用
13、Postman Newman命令行工具的使用
14、Postman与Jenkins集成使用
15、Postman进行Soap webservice接口测试
16、Postman使用mock进行挡板测试(1)
17、Postman使用mock进行挡板测试(2)
..............
暂时先规划这么多,后面在写的过程中,遇到好的点,会增加进来,今天就先写到这。
7. postman使用教程16-测试文件上传接口(content-type: multipart/form-data )
使用 postman 测试文件上传接口,文件上传请求头部参数是 content-type: multipart/form-data 类型
新建一个request请求,选post请求方式,输入接口地址
请求headers参数可以不用填,请求body选 form-data 类型, 输入参数名称,文乎橡件选 file 类型
点Select files 选择一个本地文件
输入其它请求参数
点 send 按钮执行
运行岁销旁结果
浏览器斗肢访问 /media/21.png 拼接前面ip和端口就可以访问服务器刚才上传的图片了