httprunner學習15-運行用例命令行參數詳解

前言

HttpRunner 在命令行中啓動測試時,經過指定參數,可實現豐富的測試特性控制。html

命令行參數CLI

使用 -h 查看相關命令行參數json

hrun -hapi

參數名稱 參數值 參數說明
-h, --help 不帶參數 查看幫助信息
-V, --version 不帶參數 查看版本號
--no-html-report 不帶參數 不生成測試報告
--html-report-name HTML_REPORT_NAM 重命名html報告名稱
--html-report-template HTML_REPORT_TEMPLATE 自定義html報告模板,參數帶上html模板的信息路徑
--log-level LOG_LEVEL 日誌等級,如:debug
--log-file LOG_FILE 指定日誌文本保存路徑
--dot-env-path DOT_ENV_PATH 指定環境變量.env的詳細路徑
--failfast 不帶參數 運到失敗後中止測試
--startproject STARTPROJECT 指定項目的根目錄
--validate [VALIDATE [VALIDATE ...]] 校驗json格式
--prettify [PRETTIFY [PRETTIFY ...]] 各式化json文件

--no-html-report

不生成html報告,使用--no-html-reportide

hrun test_demo.yml --no-html-report函數

這樣運行的時候,就不會生成html報告學習

D:\soft\untitled>hrun test_demo.yml --no-html-report
test_demo case1
INFO     GET http://127.0.0.1:8000/api/test/demo
INFO     status_code: 200, response_time(ms): 4.96 ms, response_length: 255 bytes
INFO     start to extract from response object.
INFO     start to validate.
.

----------------------------------------------------------------------
Ran 1 test in 0.014s

OK

--html-report-name

--html-report-name 用於指定測試報告的名稱測試

hrun test_demo.yml --html-report-name yoyospa

這樣運行以後,會再當前的report目錄下,生成一個yoyo的文件夾命令行

--html-report-template

自定義測試報告模板,後面參數是模板報告的絕對路徑debug

hrun test_demo.yml --html-report-template /path/templates/extent_report_template.html

若是指定報告名稱的話,須要修改源碼,詳情參考httprunner學習10-測試報告ExtentReport

--log-level

打印日誌等級,使用--log-level參數,日誌有五個等級:debug < info < warn < error < critical

各等級的含義:

  • debug: 級別最低,用戶開發過程當中的調試
  • info:打印程序運行是的正常的信息,用於替代print輸出
  • warn: 打印警告信息,不影響程序的運行
  • error: 程序運行出錯,能夠修復,經常使用在except異常捕獲以後
  • critical: 很是嚴重,沒法修復,程序繼續運行的話後果很是嚴重

設置了日誌等級後,調用比等級低的日誌記錄函數則不會輸出。

httprunner默認使用info等級,不帶 --log-level info 參數結果也是同樣的

hrun test_demo.yml --log-level info

設置debug等級,打印最詳細的內容

hrun test_demo.yml --log-level debug

另外三個等級warn/error/critical,只有有警告或者報錯時候,纔有日誌輸出,因此用的不多

D:\soft\untitled>hrun test_demo.yml --log-level warn
test_demo case1
.

----------------------------------------------------------------------
Ran 1 test in 0.006s

OK

D:\soft\untitled>hrun test_demo.yml --log-level error
test_demo case1
.

----------------------------------------------------------------------
Ran 1 test in 0.006s

OK

D:\soft\untitled>hrun test_demo.yml --log-level critical
test_demo case1
.

----------------------------------------------------------------------
Ran 1 test in 0.007s

OK

--log-file

--log-file 參數保存日誌文件到指定的目錄,保存日誌文件到yoyo.txt

hrun test_demo.yml --log-file yoyo.txt

在當前運行的目錄,會生成一個yoyo.txt文件

2019-09-28 22:43:11,492 - INFO -  [32mGET http://127.0.0.1:8000/api/test/demo
2019-09-28 22:43:11,498 - INFO -  [32mstatus_code: 200, response_time(ms): 6.0 ms, response_length: 255 bytes
2019-09-28 22:43:11,498 - INFO -  [32mstart to extract from response object.
2019-09-28 22:43:11,498 - INFO -  [32mstart to validate.
2019-09-28 22:43:11,503 - INFO -  [32mStart to render Html report ...
2019-09-28 22:43:11,578 - INFO -  [32mGenerated Html report: D:\soft\untitled\reports\1569681791.html

因爲日誌的輸出有加顏色,因此保存的時候會有一些亂碼,我稍微改了下httprunner/logger.py文件的日誌內容,但仍是有一點亂碼

def setup_logger(log_level, log_file=None):
    """setup root logger with ColoredFormatter."""
    level = getattr(logging, log_level.upper(), None)
    if not level:
        color_print("Invalid log level: %s" % log_level, "RED")
        sys.exit(1)

    # hide traceback when log level is INFO/WARNING/ERROR/CRITICAL
    if level >= logging.INFO:
        sys.tracebacklimit = 0
    formatter = ColoredFormatter(
        u"%(log_color)s%(bg_white)s%(levelname)-8s%(reset)s %(message)s",
        datefmt=None,
        reset=True,
        log_colors=log_colors_config
      )
    if log_file:
        formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')  # 加了這句
        handler = logging.FileHandler(log_file, encoding='utf-8')
    else:
        handler = logging.StreamHandler()
    handler.setFormatter(formatter)
    logging.root.addHandler(handler)
    logging.root.setLevel(level)

其它

--dot-env-path 用於指定.env文件的目錄

hrun test_demo.yml --dot-env-path d:\path\to.env

--failfast 遇到失敗中止測試

hrun test_demo.yml --failfast

--validate 校驗json格式,格式正確返回OK,若 JSON 文件格式存在異常,則打印詳細的報錯信息,精確到錯誤在文件中出現的行和列。

hrun --validate test_login2.json

--prettify 用於格式化json文件內容

hrun --prettify test_login2.json

D:\soft\untitled>hrun --validate test_login2.json
Start to validate JSON file: test_login2.json
OK

D:\soft\untitled>hrun --prettify test_login2.json
Start to prettify JSON file: test_login2.json
success: test_login2.pretty.json
相關文章
相關標籤/搜索