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