diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 54a66cc9..da8e764d 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -14,6 +14,7 @@ - remove dependency colorama and colorlog - generate reports/logs folder in current working directory - remove cli `--validate` +- remove cli `--pretty` ## 2.5.7 (2020-02-21) diff --git a/docs/prepare/validate-pretty.md b/docs/prepare/validate-pretty.md deleted file mode 100644 index 62ae3610..00000000 --- a/docs/prepare/validate-pretty.md +++ /dev/null @@ -1,39 +0,0 @@ - -HttpRunner 从 `1.3.1` 版本开始,支持对 JSON 格式测试用例的内容进行样式美化功能。 - -## JSON 格式美化 - -与 YAML 格式不同,JSON 格式不强制要求缩进和换行,这有点类似于 C 语言和 Python 语言的差异。 - -例如,`demo-quickstart.json`文件也可以改写为如下形式。 - -```json -[{"config": {"name": "testcase description","variables": [],"request": {"base_url": "","headers": {"User-Agent": "python-requests/2.18.4"}}}},{"test": {"name": "/api/get-token","request": {"url": "http://127.0.0.1:5000/api/get-token","headers": {"device_sn": "FwgRiO7CNA50DSU","user_agent": "iOS/10.3","os_platform": "ios","app_version": "2.8.6","Content-Type": "application/json"},"method": "POST","json": {"sign": "9c0c7e51c91ae963c833a4ccbab8d683c4a90c98"}},"validate": [{"eq": ["status_code",200]},{"eq": ["headers.Content-Type","application/json"]},{"eq": ["content.success",true]},{"eq": ["content.token","baNLX1zhFYP11Seb"]}]}},{"test": {"name": "/api/users/1000","request": {"url": "http://127.0.0.1:5000/api/users/1000","headers": {"device_sn": "FwgRiO7CNA50DSU","token": "baNLX1zhFYP11Seb","Content-Type": "application/json"},"method": "POST","json": {"name": "user1","password": "123456"}},"validate": [{"eq": ["status_code",201]},{"eq": ["headers.Content-Type","application/json"]},{"eq": ["content.success",true]},{"eq": ["content.msg","user created successfully."]}]}}] -``` - -虽然上面 JSON 格式的测试用例也能正常执行,但测试用例文件的可读性太差,不利于阅读和维护。 - -针对该需求,可使用 `--prettify` 参数对 JSON 格式用例文件进行样式美化。 - -可指定单个 JSON 用例文件路径。 - -```bash -$ hrun --prettify docs/data/demo-quickstart.json -Start to prettify JSON file: docs/data/demo-quickstart.json -success: docs/data/demo-quickstart.pretty.json -``` - -也可指定多个 JSON 用例文件路径。 - -```bash -$ hrun --prettify docs/data/demo-quickstart.json docs/data/demo-quickstart.yml docs/data/demo-quickstart-0.json -WARNING Only JSON file format can be prettified, skip: docs/data/demo-quickstart.yml -Start to prettify JSON file: docs/data/demo-quickstart.json -success: docs/data/demo-quickstart.pretty.json -Start to prettify JSON file: docs/data/demo-quickstart-0.json -success: docs/data/demo-quickstart-0.pretty.json -``` - -如上所示,当传入的文件后缀不是`.json`,HttpRunner 会打印 WARNING 信息,并跳过检测。 - -若转换成功,则打印美化后的文件路径;若 JSON 文件格式存在异常,则打印详细的报错信息,精确到错误在文件中出现的行和列。 diff --git a/httprunner/cli.py b/httprunner/cli.py index bdf10f64..852a9495 100644 --- a/httprunner/cli.py +++ b/httprunner/cli.py @@ -5,12 +5,10 @@ import sys import sentry_sdk from loguru import logger -from httprunner import __description__, __version__, exceptions +from httprunner import __description__, __version__ from httprunner.api import HttpRunner -from httprunner.loader import load_cases from httprunner.report import gen_html_report -from httprunner.utils import (create_scaffold, - prettify_json_file, init_sentry_sdk) +from httprunner.utils import create_scaffold, init_sentry_sdk init_sentry_sdk() @@ -52,9 +50,6 @@ def main(): parser.add_argument( '--startproject', help="Specify new project name.") - parser.add_argument( - '--prettify', nargs='*', - help="Prettify JSON testcase format.") args = parser.parse_args() @@ -67,10 +62,6 @@ def main(): print(f"{__version__}") sys.exit(0) - if args.prettify: - prettify_json_file(args.prettify) - sys.exit(0) - project_name = args.startproject if project_name: create_scaffold(project_name) diff --git a/httprunner/utils.py b/httprunner/utils.py index 8536e904..75feedb5 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -514,33 +514,6 @@ def gen_cartesian_product(*args): return product_list -def prettify_json_file(file_list): - """ prettify JSON testcase format - """ - for json_file in set(file_list): - if not json_file.endswith(".json"): - logger.warning(f"Only JSON file format can be prettified, skip: {json_file}") - continue - - logger.info(f"Start to prettify JSON file: {json_file}") - - dir_path = os.path.dirname(json_file) - file_name, file_suffix = os.path.splitext(os.path.basename(json_file)) - outfile = os.path.join(dir_path, f"{file_name}.pretty.json") - - with io.open(json_file, 'r', encoding='utf-8') as stream: - try: - obj = json.load(stream) - except ValueError as e: - raise SystemExit(e) - - with io.open(outfile, 'w', encoding='utf-8') as out: - json.dump(obj, out, indent=4, separators=(',', ': ')) - out.write('\n') - - print(f"success: {outfile}") - - def omit_long_data(body, omit_len=512): """ omit too long str/bytes """ diff --git a/mkdocs.yml b/mkdocs.yml index 2ef012ca..fe71cc6b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,7 +66,6 @@ nav: - 环境变量: prepare/dot-env.md - 测试用例分层: prepare/testcase-layer.md - 参数化数据驱动: prepare/parameters.md - - Validate & Prettify: prepare/validate-pretty.md - 信息安全: prepare/security.md - 文件上传场景: prepare/upload-case.md - 测试执行: