mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-13 17:29:56 +08:00
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
""" Convert HAR (HTTP Archive) to YAML/JSON testcase for HttpRunner.
|
|
|
|
Usage:
|
|
# convert to JSON format testcase
|
|
$ hrun har2case demo.har
|
|
|
|
# convert to YAML format testcase
|
|
$ hrun har2case demo.har -2y
|
|
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
from loguru import logger
|
|
|
|
from httprunner.ext.har2case.core import HarParser
|
|
|
|
|
|
def init_har2case_parser(subparsers):
|
|
""" HAR converter: parse command line options and run commands.
|
|
"""
|
|
parser = subparsers.add_parser(
|
|
"har2case", help="Convert HAR(HTTP Archive) to YAML/JSON testcases for HttpRunner.")
|
|
parser.add_argument('har_source_file', nargs='?',
|
|
help="Specify HAR source file")
|
|
parser.add_argument(
|
|
'-2y', '--to-yml', '--to-yaml',
|
|
dest='to_yaml', action='store_true',
|
|
help="Convert to YAML format, if not specified, convert to JSON format by default.")
|
|
parser.add_argument(
|
|
'--filter', help="Specify filter keyword, only url include filter string will be converted.")
|
|
parser.add_argument(
|
|
'--exclude',
|
|
help="Specify exclude keyword, url that includes exclude string will be ignored, "
|
|
"multiple keywords can be joined with '|'")
|
|
|
|
return parser
|
|
|
|
|
|
def main_har2case(args):
|
|
har_source_file = args.har_source_file
|
|
if not har_source_file or not har_source_file.endswith(".har"):
|
|
logger.error("HAR file not specified.")
|
|
sys.exit(1)
|
|
|
|
if not os.path.isfile(har_source_file):
|
|
logger.error(f"HAR file not exists: {har_source_file}")
|
|
sys.exit(1)
|
|
|
|
output_file_type = "YML" if args.to_yaml else "JSON"
|
|
HarParser(
|
|
har_source_file, args.filter, args.exclude
|
|
).gen_testcase(output_file_type)
|
|
|
|
return 0
|