前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >httprunner3.x 入门 -4 文件上传

httprunner3.x 入门 -4 文件上传

作者头像
孟船长
发布于 2022-04-12 06:35:00
发布于 2022-04-12 06:35:00
41500
代码可运行
举报
运行总次数:0
代码可运行

文件上传的关键字是upload。如果你用fiddler导出一个文件上传的har文件,然后通过har2case 文件名.har -2y转化成yaml文件,你会发现上传数据用的data,但这样并不行,要用关键字upload。

先新建api/file_upload.yml文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
    name: 上传图片
    variables:
        access_token: $access_token
        file_path: /Users/macbook/Desktop/自动化测试实战.jpg
    verify: false
    base_url: ${ENV(onlineOps)}
teststeps:
-   name: 上传图片
    request:
        upload:
            media: $file_path
        method: POST
        params:
            access_token: $access_token
        url: /cgi-bin/media/uploadimg
    validate:
    -   ne:
        - body.url
        - ""

说明:

1、upload就是上传文件的关键字,media后面传的是文件的路径

2、ne:表示不相等,这个判断就是url不是空的

找了个断言汇总

然后在testcases新建file_upload_case.yml调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  name: 图片上传
teststeps:
-   name: 获取access_token
    api: api/get_access_token.yml
    export:
      -  access_token
-   name: 图片上传
    api: api/file_upload.yml

最后放到testsuites下的tags_suits.yml里。(这个名字我随便起的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
    name: 查询标签
    parameters:
        grant_type-appid-secret-assert_txt:
            - ["client_credential","wx4d8f7de320aca501","d096e22047235cad799d917a517c6246","access_token"]
#        grant_type-appid-secret-assert_txt: ${get_access_token()} # 函数生成
#        grant_type-appid-secret-assert_txt: ${parameterize(data/get_token_data.csv)}     # 通过csv文件获取
teststeps:
-   name: 上传图片
    testcase: testcases/file_upload_case.yml
#-   name: 获取access_token
#    testcase: testcases/get_access_token_case_params.yml
#-   name: 查询标签
#    testcase: testcases/select_tags_case.yml
#-   name: 删除标签
#    testcase: testcases/select_tags_case.yml

解释:因为上传文件用到了登录后返回的access_token,所以要先跑access_token接口,而获取access_token我们已经参数化了,所以在这里我们在parameters关键字下传了数据。或者把数据放在file_upload_case.yml文件里也行,只需要通过variables关键字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  name: 图片上传
  variables:
    appid: wx889483i3uiui
    secret: ewwewr
    grant_type: client_credtial

然后执行all.py文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding: utf-8

import os

if __name__ == '__main__':
    os.system("hrun testsuites/tags_suits.yml --html=reports/report.html")

会发现报错了,报错提示要安装一个库,二选一

我选择的pip install "httprunner[upload]",可是第一次安装报错了,如下图红框,我直接又执行了一遍命令,第二次就成功了……所以您在操作的时候如果安装第一次失败可以再试试,这解决方法有点不讲道理,但是我在操作过程中就是这么过来的

再去执行一下all.py文件,发现通过了,在报告中可以看到接口的返回是图片的地址,为了确保成功可以在浏览器访问一下,结果是图片的链接,证明确实成功上传了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档