Beispiel #1
0
 def _parse_parameters(parameters: list) -> tuple:
     """解析parameters中的变量和数据"""
     line = parameters[0]
     keys, data = tuple(line.items())[0]
     if isinstance(data, str):
         matched = re.match(CSV_REGEX, data)
         if not matched:
             raise ValueError(f'参数化不支持: {data} 形式')
         csv_file = matched.group('csv')
         data = file.load(csv_file)
         data = data[1:]  # 舍弃标题行
     keys = keys.split('-')
     return keys, data
Beispiel #2
0
    keywords = data.get('Keywords')
    handle_keywords(keywords)

    tests = data.get('TestCases')
    [
        setattr(TestRobot, f'test_{index+1}', build_case(index, test))
        for index, test in enumerate(tests)
    ]

    suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestRobot)
    return suite


def run(suite):
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(suite)


# def test_is_expr():
#     assert is_expr('status_code == 200')
#     assert is_expr('status_code is True')
#     assert not is_expr('content.url')

if __name__ == '__main__':
    text = 'log hello,world'
    # do_step(text)
    data = file.load(
        '/Users/apple/Documents/Projects/Self/PyPi/runnerz/robots/tests.yaml')
    suite = build(data)
    run(suite)
Beispiel #3
0
import os
from filez import file

BASEDIR = os.path.dirname(os.path.dirname(__file__))

data1 = file.load(os.path.join(BASEDIR, 'tests', 'data', 'runnerz_01.yaml'))
from runnerz import models
from runnerz.runner import Runner, UnittestRunner


def test_models():
    suite = models.Suite(data1)
    print(suite)
    print(suite._config)
    print(suite._cases)
    print(suite._cases[0]._steps)
    print(suite._cases[0]._steps[0]._target)
    print(suite._cases[0]._steps[0]._extract)
    print(suite._cases[0]._steps[0]._validate)


def test_runner():
    suite = models.Suite(data1)
    case = suite._cases[0]
    step = case._steps[0]
    runner = Runner()
    runner.run_suite(suite)


def test_unittest_runner():
    suite = models.Suite(data1)
Beispiel #4
0
import os
import unittest

from filez import file

from tmp.base import StepGroup
from tmp.function import request

BASEDIR = os.path.dirname(os.path.dirname(__file__))
DATADIR = os.path.join(BASEDIR, 'tests')

data_file = os.path.join(DATADIR, 'tests.yml')
data = file.load(data_file)

TestTemplete = type('TestTemplate', (unittest.TestCase, ),
                    {'__doc__': data.get('name')})
context = {}
context['functions'] = {'request': request}

step_group = StepGroup(data)

for index, step in enumerate(step_group.sub_steps):
    case = lambda self: StepGroup(step, context)()
    setattr(TestTemplete, f'test_method_{index+1}', case)

if __name__ == '__main__':
    unittest.main(verbosity=2)
Beispiel #5
0
    # print(suite)
    summary = {}
    start_at = time.time()
    results = [run_suite(suite) for suite in suites]

    summary['time'] = dict(start_at=start_at, duration=time.time() - start_at)
    summary['success'] = all(
        [result.summary.get('success') for result in results])
    summary['stat'] = dict(
        testsRun=sum_stat(results, 'testsRun'),
        successes=sum_stat(results, 'successes'),
        skipped=sum_stat(results, 'skipped'),
        errors=sum_stat(results, 'errors'),
        failures=sum_stat(results, 'failures'),
        expectedFailures=sum_stat(results, 'expectedFailures'),
        unexpectedSuccesses=sum_stat(results, 'unexpectedSuccesses'),
    )
    summary['platform'] = dict(httprunner_version='1.5.6',
                               python_version=platform.python_version(),
                               platform=platform.platform())
    summary['details'] = [result.summary for result in results]
    return summary


if __name__ == '__main__':
    data = file.load('/Users/superhin/项目/runnerz/httprunner/tests.yaml')
    # result = run_suite(tests)
    result = run_multi([data, data])
    from pprint import pprint
    pprint(result)