前言
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