前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >httprunner学习15-运行用例命令行参数详解

httprunner学习15-运行用例命令行参数详解

作者头像
上海-悠悠
发布2019-10-12 16:13:40
1.2K0
发布2019-10-12 16:13:40
举报

前言

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报告

代码语言:javascript
复制
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,只有有警告或者报错时候,才有日志输出,所以用的很少

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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文件的日志内容,但还是有一点乱码

代码语言:javascript
复制
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

代码语言:javascript
复制
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
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • —html-report-name
  • —log-level
  • —log-file
  • 其它
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档