前言
HttpRunner 在命令行中啟動測試時,通過指定參數,可實現豐富的測試特性控制。
命令行參數CLI
使用 -h 查看相關命令行參數
hrun -h
參數名稱 | 參數值 | 參數說明 |
---|---|---|
-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-report
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 yoyo
這樣運行之后,會再當前的report目錄下,生成一個yoyo的文件夾
--html-report-template
自定義測試報告模板,后面參數是模板報告的絕對路徑
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