文件上传的关键字是upload。如果你用fiddler导出一个文件上传的har文件,然后通过har2case 文件名.har -2y
转化成yaml文件,你会发现上传数据用的data,但这样并不行,要用关键字upload。
先新建api/file_upload.yml文件:
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调用
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里。(这个名字我随便起的)
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关键字
config:
name: 图片上传
variables:
appid: wx889483i3uiui
secret: ewwewr
grant_type: client_credtial
然后执行all.py文件
# 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文件,发现通过了,在报告中可以看到接口的返回是图片的地址,为了确保成功可以在浏览器访问一下,结果是图片的链接,证明确实成功上传了。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有