refactor: replace httpbin service with docker

This commit is contained in:
lilong.129
2023-07-21 23:16:45 +08:00
parent 36f849ded6
commit 9b30fa2435
15 changed files with 38 additions and 23 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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")

View File

@@ -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):

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,6 +1,6 @@
config:
name: basic test with httpbin
base_url: https://httpbin.org/
base_url: ${get_httpbin_server()}
teststeps:
-

View File

@@ -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(

View File

@@ -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

View File

@@ -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",

View File

@@ -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

View File

@@ -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"},

View File

@@ -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):