httprunner 2.x学习10-上传文件(upload关键字使用)

Posted yoyoketang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httprunner 2.x学习10-上传文件(upload关键字使用)相关的知识,希望对你有一定的参考价值。

前言

requests 库里面上传文件会用到 requests_toolbelt, 可以很方便的解决 multipart/form-data 类型的文件上传相关接口。
HttpRunner 集成了 requests_toolbelt,从 2.4.1+ 版本开始可以使用内置 upload 关键字来上传文件相关操作。
相关环境:

  • httprunner 2.4.1以上版本
  • requests_toolbelt
  • filetype

使用示例

使用 upload 关键字,上传文件(2.4.1以上版本)

- test:
    name: upload file
    request:
        url: http://httpbin.org/upload
        method: POST
        headers:
            Cookie: session=AAA-BBB-CCC
        upload:
            file: "data/file_to_upload"
            field1: "value1"
            field2: "value2"
    validate:
        - eq: ["status_code", 200]

参考案例:文件上传multipart/form-data

用fiddler抓包,查看抓到的接口,以下这种接口就是multipart/form-data

  • Content-Type: multipart/form-data
  • body参数是这种格式:

-----------------------------22165374713946
Content-Disposition: form-data; name="localUrl"

yoyoketang.png
-----------------------------22165374713946
Content-Disposition: form-data; name="imgFile"; filename="yoyoketang.png"
Content-Type: image/png

技术图片

httprunner2.x 脚本文件上传使用 upload 关键字,文件放 data 目录下

# 上海-悠悠,httprunner QQ交流群:1121184576
-   config:
        name: 上传文件
        variables: {}
-   test:
        name: files
        request:
            upload:
                imgFile: "data/122.png"
            headers:
                Authorization: Bearer 登陆的token
                User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (Khtml, like Gecko) Mobile/15E148
            method: POST
            url: http://x.x.x.x/path/files
        validate:
        -   eq:
            - status_code
            - 200
        -   eq:
            - headers.Content-Type
            - application/json;charset=UTF-8







以上是关于httprunner 2.x学习10-上传文件(upload关键字使用)的主要内容,如果未能解决你的问题,请参考以下文章

httprunner 2.x学习4-测试用例分层

httprunner 2.x学习18 - 报告validate显示LazyString($msg)问题解决

httprunner 2.x学习20 - env环境变量有#注释和空行处理

httprunner 2.x学习20 - HttpRunner().run()连续执行2个不同项目,只会解析到第一个项目的debugtalk.py

httprunner 2.x学习16 - 调用HttpRunner类执行用例

httprunner2.x学习1-环境与登录接口案例