mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-25 17:44:02 +08:00
refactor: replace httpbin service with docker
This commit is contained in:
4
.github/workflows/smoketest.yml
vendored
4
.github/workflows/smoketest.yml
vendored
@@ -30,6 +30,10 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
architecture: x64
|
||||
- name: start httpbin server with docker
|
||||
run: |
|
||||
docker pull kennethreitz/httpbin
|
||||
docker run -p 80:80 kennethreitz/httpbin
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install poetry
|
||||
|
||||
4
.github/workflows/unittest.yml
vendored
4
.github/workflows/unittest.yml
vendored
@@ -28,6 +28,10 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
architecture: x64
|
||||
- name: start httpbin server with docker
|
||||
run: |
|
||||
docker pull kennethreitz/httpbin
|
||||
docker run -p 80:80 kennethreitz/httpbin
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
config:
|
||||
name: basic test with httpbin
|
||||
base_url: https://httpbin.org/
|
||||
base_url: ${get_httpbin_server()}
|
||||
|
||||
teststeps:
|
||||
-
|
||||
@@ -10,7 +10,7 @@ teststeps:
|
||||
method: GET
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
- eq: [body.headers.Host, "httpbin.org"]
|
||||
- eq: [body.headers.Host, "127.0.0.1"]
|
||||
|
||||
-
|
||||
name: user-agent
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# NOTE: Generated By HttpRunner v4.1.4
|
||||
# NOTE: Generated By HttpRunner v4.3.5
|
||||
# FROM: basic.yml
|
||||
from httprunner import HttpRunner, Config, Step, RunRequest
|
||||
|
||||
|
||||
class TestCaseBasic(HttpRunner):
|
||||
|
||||
config = Config("basic test with httpbin").base_url("https://httpbin.org/")
|
||||
config = Config("basic test with httpbin").base_url("${get_httpbin_server()}")
|
||||
|
||||
teststeps = [
|
||||
Step(
|
||||
@@ -13,7 +13,7 @@ class TestCaseBasic(HttpRunner):
|
||||
.get("/headers")
|
||||
.validate()
|
||||
.assert_equal("status_code", 200)
|
||||
.assert_equal("body.headers.Host", "httpbin.org")
|
||||
.assert_equal("body.headers.Host", "127.0.0.1")
|
||||
),
|
||||
Step(
|
||||
RunRequest("user-agent")
|
||||
|
||||
@@ -6,9 +6,11 @@ import uuid
|
||||
|
||||
from loguru import logger
|
||||
|
||||
from httprunner.utils_test import HTTP_BIN_URL
|
||||
|
||||
|
||||
def get_httpbin_server():
|
||||
return "https://httpbin.org"
|
||||
return HTTP_BIN_URL
|
||||
|
||||
|
||||
def setup_testcase(variables):
|
||||
@@ -17,7 +19,7 @@ def setup_testcase(variables):
|
||||
|
||||
|
||||
def teardown_testcase():
|
||||
logger.info(f"teardown_testcase.")
|
||||
logger.info("teardown_testcase.")
|
||||
|
||||
|
||||
def setup_teststep(request, variables):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NOTE: Generated By HttpRunner v4.1.4
|
||||
# NOTE: Generated By HttpRunner v4.3.5
|
||||
# FROM: hooks.yml
|
||||
from httprunner import HttpRunner, Config, Step, RunRequest
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NOTE: Generated By HttpRunner v4.1.4
|
||||
# NOTE: Generated By HttpRunner v4.3.5
|
||||
# FROM: load_image.yml
|
||||
from httprunner import HttpRunner, Config, Step, RunRequest
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# NOTE: Generated By HttpRunner v4.1.4
|
||||
# NOTE: Generated By HttpRunner v4.3.5
|
||||
# FROM: upload.yml
|
||||
from httprunner import HttpRunner, Config, Step, RunRequest
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
config:
|
||||
name: basic test with httpbin
|
||||
base_url: https://httpbin.org/
|
||||
base_url: ${get_httpbin_server()}
|
||||
|
||||
teststeps:
|
||||
-
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# NOTE: Generated By HttpRunner v4.1.4
|
||||
# NOTE: Generated By HttpRunner v4.3.5
|
||||
# FROM: validate.yml
|
||||
from httprunner import HttpRunner, Config, Step, RunRequest
|
||||
|
||||
|
||||
class TestCaseValidate(HttpRunner):
|
||||
|
||||
config = Config("basic test with httpbin").base_url("https://httpbin.org/")
|
||||
config = Config("basic test with httpbin").base_url("${get_httpbin_server()}")
|
||||
|
||||
teststeps = [
|
||||
Step(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import unittest
|
||||
|
||||
from httprunner.client import HttpSession
|
||||
from httprunner.utils_test import HTTP_BIN_URL
|
||||
|
||||
|
||||
class TestHttpSession(unittest.TestCase):
|
||||
@@ -8,7 +9,7 @@ class TestHttpSession(unittest.TestCase):
|
||||
self.session = HttpSession()
|
||||
|
||||
def test_request_http(self):
|
||||
self.session.request("get", "http://httpbin.org/get")
|
||||
self.session.request("get", f"{HTTP_BIN_URL}/get")
|
||||
address = self.session.data.address
|
||||
self.assertGreater(len(address.server_ip), 0)
|
||||
self.assertEqual(address.server_port, 80)
|
||||
@@ -26,7 +27,7 @@ class TestHttpSession(unittest.TestCase):
|
||||
def test_request_http_allow_redirects(self):
|
||||
self.session.request(
|
||||
"get",
|
||||
"http://httpbin.org/redirect-to?url=https%3A%2F%2Fgithub.com",
|
||||
f"{HTTP_BIN_URL}/redirect-to?url=https%3A%2F%2Fgithub.com",
|
||||
allow_redirects=True,
|
||||
)
|
||||
address = self.session.data.address
|
||||
@@ -50,7 +51,7 @@ class TestHttpSession(unittest.TestCase):
|
||||
def test_request_http_not_allow_redirects(self):
|
||||
self.session.request(
|
||||
"get",
|
||||
"http://httpbin.org/redirect-to?url=https%3A%2F%2Fgithub.com",
|
||||
f"{HTTP_BIN_URL}/redirect-to?url=https%3A%2F%2Fgithub.com",
|
||||
allow_redirects=False,
|
||||
)
|
||||
address = self.session.data.address
|
||||
|
||||
@@ -2,6 +2,7 @@ import os
|
||||
import unittest
|
||||
|
||||
from httprunner import compat, exceptions, loader
|
||||
from httprunner.utils_test import HTTP_BIN_URL
|
||||
|
||||
|
||||
class TestCompat(unittest.TestCase):
|
||||
@@ -155,7 +156,7 @@ class TestCompat(unittest.TestCase):
|
||||
|
||||
def test_ensure_testcase_v4(self):
|
||||
testcase_content = {
|
||||
"config": {"name": "xxx", "base_url": "https://httpbin.org"},
|
||||
"config": {"name": "xxx", "base_url": HTTP_BIN_URL},
|
||||
"teststeps": [
|
||||
{
|
||||
"name": "get with params",
|
||||
@@ -179,7 +180,7 @@ class TestCompat(unittest.TestCase):
|
||||
self.assertEqual(
|
||||
compat.ensure_testcase_v4(testcase_content),
|
||||
{
|
||||
"config": {"name": "xxx", "base_url": "https://httpbin.org"},
|
||||
"config": {"name": "xxx", "base_url": HTTP_BIN_URL},
|
||||
"teststeps": [
|
||||
{
|
||||
"name": "get with params",
|
||||
|
||||
@@ -47,7 +47,7 @@ import sys
|
||||
from typing import Text
|
||||
|
||||
from httprunner.models import VariablesMapping, FunctionsMapping, TStep
|
||||
from httprunner.parser import parse_data, parse_variables_mapping
|
||||
from httprunner.parser import parse_data
|
||||
from loguru import logger
|
||||
|
||||
try:
|
||||
@@ -138,7 +138,6 @@ def multipart_encoder(**kwargs):
|
||||
ensure_upload_ready()
|
||||
fields_dict = {}
|
||||
for key, value in kwargs.items():
|
||||
|
||||
if os.path.isabs(value):
|
||||
# value is absolute file path
|
||||
_file_path = value
|
||||
|
||||
@@ -4,12 +4,13 @@ import requests
|
||||
|
||||
from httprunner.parser import Parser
|
||||
from httprunner.response import ResponseObject, uniform_validator
|
||||
from httprunner.utils_test import HTTP_BIN_URL
|
||||
|
||||
|
||||
class TestResponse(unittest.TestCase):
|
||||
def setUp(self) -> None:
|
||||
resp = requests.post(
|
||||
"https://httpbin.org/anything",
|
||||
f"{HTTP_BIN_URL}/anything",
|
||||
json={
|
||||
"locations": [
|
||||
{"name": "Seattle", "state": "WA"},
|
||||
|
||||
@@ -10,6 +10,9 @@ from httprunner import __version__, loader, utils
|
||||
from httprunner.utils import ExtendJSONEncoder, merge_variables, ga4_client
|
||||
|
||||
|
||||
HTTP_BIN_URL = "http://127.0.0.1:80"
|
||||
|
||||
|
||||
class TestUtils(unittest.TestCase):
|
||||
def test_set_os_environ(self):
|
||||
self.assertNotIn("abc", os.environ)
|
||||
@@ -121,10 +124,10 @@ class TestUtils(unittest.TestCase):
|
||||
|
||||
def test_override_config_variables(self):
|
||||
step_variables = {"base_url": "$base_url", "foo1": "bar1"}
|
||||
config_variables = {"base_url": "https://httpbin.org", "foo1": "bar111"}
|
||||
config_variables = {"base_url": HTTP_BIN_URL, "foo1": "bar111"}
|
||||
self.assertEqual(
|
||||
merge_variables(step_variables, config_variables),
|
||||
{"base_url": "https://httpbin.org", "foo1": "bar1"},
|
||||
{"base_url": HTTP_BIN_URL, "foo1": "bar1"},
|
||||
)
|
||||
|
||||
def test_cartesian_product_one(self):
|
||||
|
||||
Reference in New Issue
Block a user