场景一:只上传文件
场景二:上传文件的同时携带参数
二、地址、入参等都没有问题,请求结果返回401怎么办
- 检查自己的代码,确保没有问题
- 检查接口传参,是否需要传特殊token
- 如果都没问题,试试在header中加入【Origin】
- 原理:当我们的浏览器发出跨站请求时,服务器会校验当前请求是不是来自被允许的站点。服务器就是通过 Origin 字段的值来进行判断。
三:httprunner3.0 upload方法不支持参数化怎么处理?
问题:在实际操作过程中发现,当在upload方法中不支持参数化,但是有些数据必须通过上个接口的extract才能获取到
解决方案:
可以调用httprunner中的m_encoder方法
config:
name: "测试流程"
base_url: ${ENV(BASE_URL)}
variables:
username: "test"
teststeps:
- name: "步骤1"
request:
method: POST
url: /test/test
json:
emplNo: "1"
setup_hooks:
- ${headers2($request, $username)}
validate:
- eq: ["status_code", 200]
- eq: [json.code, "200"]
- eq: [json.message, "ok"]
extract:
- applyId: body.data.id
- name: "步骤2:上传离职附件"
variables:
file: "testdata/leave_apply.png"
aid: ${to_string($applyId)}
at: "2"
m_encoder: ${multipart_encoder(file=$file, applyId=$aid, at=$at)}
request:
method: POST
url: /test/test
headers:
Content-Type: "${multipart_content_type($m_encoder)}"
data: $m_encoder
setup_hooks:
- ${headers_upload($request, $username)}
validate:
- eq: ["status_code", 200]
- eq: [json.code, "200"]
- eq: [json.message, "ok"]
作者:gz_tester
链接:https://www.jianshu.com/p/9a82a04ee2a8