zoukankan      html  css  js  c++  java
  • httprunner学习15-运行用例命令行参数详解

    前言

    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:softuntitled>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:softuntitled>hrun test_demo.yml --log-level warn
    test_demo case1
    .
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.006s
    
    OK
    
    D:softuntitled>hrun test_demo.yml --log-level error
    test_demo case1
    .
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.006s
    
    OK
    
    D:softuntitled>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 - GET http://127.0.0.1:8000/api/test/demo
    2019-09-28 22:43:11,498 - INFO - status_code: 200, response_time(ms): 6.0 ms, response_length: 255 bytes
    2019-09-28 22:43:11,498 - INFO - start to extract from response object.
    2019-09-28 22:43:11,498 - INFO - start to validate.
    2019-09-28 22:43:11,503 - INFO - Start to render Html report ...
    2019-09-28 22:43:11,578 - INFO - Generated Html report: D:softuntitled
    eports1569681791.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 o.env

    --failfast 遇到失败停止测试

    hrun test_demo.yml --failfast

    --validate 校验json格式,格式正确返回OK,若 JSON 文件格式存在异常,则打印详细的报错信息,精确到错误在文件中出现的行和列。

    hrun --validate test_login2.json

    --prettify 用于格式化json文件内容

    hrun --prettify test_login2.json

    D:softuntitled>hrun --validate test_login2.json
    Start to validate JSON file: test_login2.json
    OK
    
    D:softuntitled>hrun --prettify test_login2.json
    Start to prettify JSON file: test_login2.json
    success: test_login2.pretty.json
    
  • 相关阅读:
    限制泛型可用类型
    泛型的常规用法(声明两个类型)
    一个类似于金字塔的图形
    Fibonacci数
    快来秒杀我
    奇偶数分离
    Background
    Financial Management
    HangOver
    Binary String Matching
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/11604842.html
Copyright © 2011-2022 走看看