前言

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

httprunner学习15-运行用例命令行参数详解的更多相关文章

  1. VLC命令行参数详解

    VLC命令行参数详解 2012-11-29 14:00 6859人阅读 评论(0) 收藏 举报 Usage: vlc [options] [stream] ...You can specify mul ...

  2. 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子

    一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...

  3. 【转载】Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解

    Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解 1清风揽月10人评论5006人阅读2017-06-21 15:48:43   博文说明[前言]: 本文 ...

  4. 以太坊客户端Geth命令用法-参数详解

    Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具. 熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册. 本文主要是对geth help的翻译 ...

  5. free命令常用参数详解

    free命令常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在运维期间我们会经常去查看服务器硬件信息,比如说内存,大家可能知道看内存用“[root@yinzhengji ...

  6. [转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

    XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dir ...

  7. 运行FreeSWITCH的命令行参数

    一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动.在此,仅作简单介绍.如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到. 使用 ...

  8. Java之jdk命令行工具详解

    JPS---虚拟机进程状况工具 常用的参数: -l 输出Java应用程序的main class的完整包 -q 仅显示pid,不显示其它任何相关信息 -m 输出传递给main方法的参数 -v 输出传递给 ...

  9. linux-linux top 命令各参数详解

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...

随机推荐

  1. SQL告警

    SQL很有必要   MySQL性能 最大数据量 最大并发数 查询耗时0.5秒 实施原则 数据表设计 数据类型 避免空值 text类型 索引优化 索引分类 优化原则 SQL优化 分批处理 不做列运算 避 ...

  2. hread.interrupt()到底意味着什么

    首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止. 所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了.而 Threa ...

  3. LuoguP3069 【[USACO13JAN]牛的阵容Cow Lineup

    题目链接 看了看其他大佬的文章,为什么要控制右端呢 其实就是一个很简单的模拟队列趴... 难点就在于根据题意我们可以分析得一段合法区间内,不同种类个数不能超过k+2 哦当然,由于种类数范围过大,要对种 ...

  4. 【拆分版】Docker-compose构建Kibana单实例,基于7.1.0

    写在前边 今凌晨的时候已经把这整个Docker-compose构建的ELK集群跑起来了,有点没熬住,所以早上起来补文档,今天就上到公司测试服务器上测试了,好开森. 本文内容就是红框的部分,只是启动个K ...

  5. AQS原理解析 AbstractQueuedSynchronizer

    AQS实现原理  https://blog.csdn.net/ym123456677/article/details/80381354   https://www.cnblogs.com/keleli ...

  6. CentOS 7.0 更改SSH 远程连接 端口号

    许多学习过redhat 7的同学们,在使用centos的时候总会遇到一些问题,因为centos在安装时会默认开启一些服务,今天我们就来更改下centos 7.0的SSH端口. 操作步骤: 远程登录到c ...

  7. 基于百度地图JavaScript API,员工住址统计

    公司一般都有通讯和住址的统计,但是文字化的表格根本就不知道住在哪. 用百度地图就可以轻松解决, 而且公司还经常人员变动,读取excel中的内容,就不用每次还要更改地图文件了. 在遇到需要聚餐在地图中标 ...

  8. 使用VBA将Excel指定单元格数据、字符串或者图表对象插入到Word模板指定书签处

    准备工作: 1.首先需要提供一个word模板,并且标记好您要插入书签的位置,定义书签的命名.如图 2.模拟您要插入的Excel原始数据和图表对象 插入代码如下: Private Sub Command ...

  9. .net Dapper 实践系列(6) ---事务删除(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 实现步骤 写在最后 写在前面 上一小节,总结了事务多表更新的两种方法.一个是只更新原来的数据,一个是先删除原来的数据再往里面添加新的数据.而这一小节,说的是事务的多表删除. 实现步骤 ...

  10. linux学习 - 基本命令篇

    关机重启命令 基本操作之修改用户名(Ubuntu) 查看系统版本号 查看系统是32位还是64位 系统进程信息查看 查看某个端口被占用的情况 查看磁盘分区使用情况 df 命令 fdisk 关机重启命令 ...