文件上传接口如何测试
在做接口测试时,之前都是使用测试工具,对于文件上传只需要修改入参的类型,当使用代码进行入参时,有点无从下手。
于是我通过抓包工具获取到工具或者界面操作的入参规则,然后分析怎么使用此规则写入到代码的请求里。
抓包成功的信息如下:
在查询官网的requests文件上传方法:
于是我的代码如下:
from common.http_requests import HttpRequests from config.config_test import Conf import os import sys import unittest path = os.path.join(os.path.dirname(os.path.dirname( os.path.dirname(os.path.abspath(__file__))))) sys.path.append(path) class Test_Add_Task(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.url = Conf.TEST_URL.value cls.http = HttpRequests(cls.url) def test_add_task_success(self): '''上传文件用例:/file/upload''' payload = { 'file': ("1.bin", open('1.bin', 'rb'), 'application/octet-stream')} response = Test_Add_Task.http.post('/file/upload', files=payload) self.assertEqual(200, response.status_code, '返回非200') self.assertEqual(str(0), str(response.json()['code']), '上传文件失败') if __name__ == '__main__': unittest.main()
执行结果:
成功解决上传文件的接口的入参问题,这里需要注意的是文件的位置,如果没有设置python系统环境变量,最好用绝对路径。