Example #1
0
from fastapi import APIRouter

from httprunner.runner import HttpRunner
from httprunner.schema import ProjectMeta, TestCase

router = APIRouter()
runner = HttpRunner()


@router.post("/hrun/debug/testcase", tags=["debug"])
async def debug_single_testcase(project_meta: ProjectMeta, testcase: TestCase):
    resp = {"code": 0, "message": "success", "result": {}}

    if project_meta.debugtalk_py:
        origin_local_keys = list(locals().keys()).copy()
        exec(project_meta.debugtalk_py, {}, locals())
        new_local_keys = list(locals().keys()).copy()
        new_added_keys = set(new_local_keys) - set(origin_local_keys)
        new_added_keys.remove("origin_local_keys")
        for func_name in new_added_keys:
            project_meta.functions[func_name] = locals()[func_name]

    runner.with_project_meta(project_meta).run_testcase(testcase)
    summary = runner.get_summary()

    if not summary.success:
        resp["code"] = 1
        resp["message"] = "fail"

    resp["result"] = summary.dict()
    return resp
Example #2
0
 def setUp(self):
     self.runner = HttpRunner()
Example #3
0
 def setUp(self):
     loader.project_meta = None
     self.runner = HttpRunner()
 def test_start(self):
     s = requests.Session()
     HttpRunner(self.config, self.teststeps,
                session=s).with_variables(foo1="bar123",
                                          foo2="bar22").run()