HttpRunner 在命令行中啓動測試時,經過指定參數,可實現豐富的測試特性控制。html
使用 -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文件 |
不生成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 用於指定測試報告的名稱測試
hrun test_demo.yml --html-report-name yoyospa
這樣運行以後,會再當前的report目錄下,生成一個yoyo的文件夾命令行
自定義測試報告模板,後面參數是模板報告的絕對路徑debug
hrun test_demo.yml --html-report-template /path/templates/extent_report_template.html
若是指定報告名稱的話,須要修改源碼,詳情參考httprunner學習10-測試報告ExtentReport
打印日誌等級,使用--log-level參數,日誌有五個等級:debug < info < warn < error < 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 參數保存日誌文件到指定的目錄,保存日誌文件到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