diff --git a/docs/cmd/hrp_har2case.md b/docs/cmd/hrp_har2case.md index d203c699..667710f7 100644 --- a/docs/cmd/hrp_har2case.md +++ b/docs/cmd/hrp_har2case.md @@ -7,15 +7,16 @@ Convert HAR to json/yaml testcase files Convert HAR to json/yaml testcase files ``` -hrp har2case path... [flags] +hrp har2case harPath... [flags] ``` ### Options ``` - -h, --help help for har2case - -j, --to-json convert to JSON format (default) - -y, --to-yaml convert to JSON format + -h, --help help for har2case + -d, --output-dir string specify output directory, default to the same dir with har file + -j, --to-json convert to JSON format (default) + -y, --to-yaml convert to JSON format ``` ### SEE ALSO diff --git a/har2case/core.go b/har2case/core.go index f87fc152..0db841c2 100644 --- a/har2case/core.go +++ b/har2case/core.go @@ -16,6 +16,11 @@ import ( "github.com/httprunner/hrp" ) +const ( + suffixJSON = ".json" + suffixYAML = ".yaml" +) + func NewHAR(path string) *HAR { return &HAR{ path: path, @@ -34,33 +39,21 @@ func (h *HAR) SetOutputDir(dir string) { } func (h *HAR) GenJSON() (jsonPath string, err error) { - jsonFile := getFilenameWithoutExtension(h.path) + ".json" - if h.outputDir != "" { - jsonPath = filepath.Join(h.outputDir, jsonFile) - } else { - jsonPath = filepath.Join(filepath.Dir(h.path), jsonFile) - } - tCase, err := h.makeTestCase() if err != nil { return "", err } + jsonPath = h.genOutputPath(suffixJSON) err = tCase.Dump2JSON(jsonPath) return } func (h *HAR) GenYAML() (yamlPath string, err error) { - yamlFile := getFilenameWithoutExtension(h.path) + ".yaml" - if h.outputDir != "" { - yamlPath = filepath.Join(h.outputDir, yamlFile) - } else { - yamlPath = filepath.Join(filepath.Dir(h.path), yamlFile) - } - tCase, err := h.makeTestCase() if err != nil { return "", err } + yamlPath = h.genOutputPath(suffixYAML) err = tCase.Dump2YAML(yamlPath) return } @@ -306,6 +299,15 @@ func (s *TStep) makeValidate(entry *Entry) error { return nil } +func (h *HAR) genOutputPath(suffix string) string { + file := getFilenameWithoutExtension(h.path) + suffix + if h.outputDir != "" { + return filepath.Join(h.outputDir, file) + } else { + return filepath.Join(filepath.Dir(h.path), file) + } +} + func getFilenameWithoutExtension(path string) string { base := filepath.Base(path) ext := filepath.Ext(base)