mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 19:39:44 +08:00
fix #1339: omit pseudo header names for HTTP/1, e.g. :authority, :method, :path, :schema
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
- feat: support skip for pytest
|
||||
- feat: print request and response details in DEBUG level when running API cases
|
||||
- fix: support None/dict/list format when printing sql response
|
||||
- fix: omit pseudo header names for HTTP/1, e.g. :authority, :method, :path, :schema
|
||||
|
||||
## v4.1.3 (2022-06-14)
|
||||
|
||||
|
||||
@@ -13,6 +13,10 @@ teststeps:
|
||||
foo1: bar1
|
||||
foo2: bar2
|
||||
headers:
|
||||
:authority: postman-echo.com
|
||||
:method: POST
|
||||
:path: /get
|
||||
:schema: https
|
||||
User-Agent: HttpRunner/3.0
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NOTE: Generated By HttpRunner v4.1.3
|
||||
# NOTE: Generated By HttpRunner v4.1.4
|
||||
# FROM: request_methods/hardcode.yml
|
||||
|
||||
|
||||
@@ -18,7 +18,15 @@ class TestCaseHardcode(HttpRunner):
|
||||
RunRequest("get with params")
|
||||
.get("/get")
|
||||
.with_params(**{"foo1": "bar1", "foo2": "bar2"})
|
||||
.with_headers(**{"User-Agent": "HttpRunner/3.0"})
|
||||
.with_headers(
|
||||
**{
|
||||
":authority": "postman-echo.com",
|
||||
":method": "POST",
|
||||
":path": "/get",
|
||||
":schema": "https",
|
||||
"User-Agent": "HttpRunner/3.0",
|
||||
}
|
||||
)
|
||||
.validate()
|
||||
.assert_equal("status_code", 200)
|
||||
),
|
||||
|
||||
@@ -93,10 +93,17 @@ def run_step_request(runner: HttpRunner, step: TStep) -> StepResult:
|
||||
request_dict = step.request.dict()
|
||||
request_dict.pop("upload", None)
|
||||
parsed_request_dict = runner.parser.parse_data(request_dict, step_variables)
|
||||
parsed_request_dict["headers"].setdefault(
|
||||
"HRUN-Request-ID",
|
||||
f"HRUN-{runner.case_id}-{str(int(time.time() * 1000))[-6:]}",
|
||||
)
|
||||
|
||||
request_headers = parsed_request_dict.pop("headers", {})
|
||||
# omit pseudo header names for HTTP/1, e.g. :authority, :method, :path, :scheme
|
||||
request_headers = {
|
||||
key: request_headers[key] for key in request_headers if not key.startswith(":")
|
||||
}
|
||||
request_headers[
|
||||
"HRUN-Request-ID"
|
||||
] = f"HRUN-{runner.case_id}-{str(int(time.time() * 1000))[-6:]}"
|
||||
parsed_request_dict["headers"] = request_headers
|
||||
|
||||
step_variables["request"] = parsed_request_dict
|
||||
|
||||
# setup hooks
|
||||
|
||||
Reference in New Issue
Block a user