写点什么

软件测试 | 接口测试文件上传测试

  • 2023-02-22
    北京
  • 本文字数:816 字

    阅读完需:约 3 分钟

在服务端自动化测试过程中,文件上传尅性的接口对应的请求头中的 content-type 为 multipart/from-data; boundary=... ,对于这种类型的接口,使用 Python 的 requests 或者 Java 的 RestAssured 可实现接口测试。


实战演示


实战演示代码如下(Python 版和 Java 版)。


(1)Python 编程实现中,我们可以使用 files 参数上传文件,files 参数传递的内容为字典格式,字典中 key 值为上传的文件名,字典中的 value 通常是传递一个二进制模式的文件流。


>>> url = 'https://httpbin.ceshiren.com/post'>>> files = { "hogwarts_file":open("hogwarts.txt","rb")}>>> r = requests.post(url, files=files)>>> r.test{   "args":{},   "data":"",   "files":{       "hogwarts_file":"123"   },   "form":{},   //省略   "url":"https://httpbin.ceshiren.com/post"}
复制代码


(2)Java 演示代码


Java 程序中需要使用 given()方法提供的 multipart()方法实现接口测试,multipart()方法中第一个参数为 name,第二个参数是一个 File 实例对象。File 实例化过程中,需要传入上传文件“绝对路径+文件名”。


import java.io.File;
import static io.restassured.RestAssured.*;
public class Requests{ public static void main (Sring[] args){ given().multipart("hogwartsFile",new File("绝对路径+文件名")). when().post("https://httpbin.ceshiren.com/ post").then().log().all(); }}
复制代码


响应内容如下:


{  "args"":{  },  "data":"",  "files":{       "hogwarts_file":"123"  },  "from":{  },  "headers":{  //省略  },  "json":null,  "origin":"119.123.207.174",  "url":"https://httpbin.ceshiren.com/post"}
复制代码


使用抓包工具 Charles 抓取接口参数传递的数据,如图 7-5 所示。如果是 Java 程序,name 传递的内容为 multipart()方法的第一个参数;Python 程序中,files 参数传递的内容为字典的 key 值。


更多软件测试行业资讯可关注主页了解详情哦~


用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 接口测试文件上传测试_测试_测吧(北京)科技有限公司_InfoQ写作社区