【自动化测试】pytest 用例执行中print日志实时输出

author: jwensh
date: 20231130

pycharm 中 pytest 用例执行中 print 日志 standout 实时命令行输出

使用场景

在进行 websocket 接口进行测试的时候,希望有一个 case 是一直执行并接受接口返回的数据

def on_message(ws, message):
    message = json.loads(message)
    if message is not None and message['total'] > 0:
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"), message)


class TestWss(unittest.TestCase):

    def test_bttc_todos(self):
        websocket.enableTrace(False)
        address = "*****"
        url = "{}/test/todos/{}".format(BASE_ENV_URL, address)
        ws = websocket.WebSocketApp(url,
                                    on_open=on_open,
                                    on_message=on_message,
                                    on_error=on_error,
                                    on_close=on_close)
        ws.run_forever(dispatcher=rel)  # 这里回一直卡住不然程序停止
        rel.signal(2, rel.abort)  # Keyboard Interrupt
        rel.dispatch()

直接点击 pycharm 上测试方法左侧的执行按钮
在这里插入图片描述
是没有任何 on_message 的日志输出

在这里插入图片描述

想要 on_message 中的日志能够实时打印,可以修改 pytest 的执行参数

修改参数来达到实时输出日志的效果

  • 设置 pycharm 执行测试使用的工具
    • 第三步设置成 pytest (pytest 也是兼容 nose 和 unittest, 所以推荐 )
      在这里插入图片描述
  • 在用例用例/调试配置里设置命令的其他参数
    • --capture=no 或者 -s (pytest -h 就能看到参数)
      在这里插入图片描述

再次执行用例就能有实时日志了

  • 最后: 构建自动化测试用例时,添加简洁且饱含核心信息的日志是非常有必要的。除了添加 pytest 参数形式来展示实时日志,还可以使用 logging 模块来实现运行测试用例的实时输出。
  • 可以按自己的需求来,如果只是调试什么的,可以直接用参数
  • 如果是想要保留测试过程的重要数据,建议使用 logging

相关推荐

  1. pytest+allure批量执行测试

    2023-12-07 13:40:05       33 阅读
  2. pytest框架测试实现输出log到指定文件

    2023-12-07 13:40:05       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 13:40:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 13:40:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 13:40:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 13:40:05       20 阅读

热门阅读

  1. 星期一 至 星期日的样本个数统计(Python)

    2023-12-07 13:40:05       32 阅读
  2. 基于灰狼算法求解旅行商问题的MATLAB源码

    2023-12-07 13:40:05       41 阅读
  3. nvm,node,npm,yarn相关安装报错问题记录

    2023-12-07 13:40:05       37 阅读
  4. CSS-2

    2023-12-07 13:40:05       34 阅读
  5. 数据库sql是什么?

    2023-12-07 13:40:05       37 阅读
  6. [Swift]RxSwift常见用法详解

    2023-12-07 13:40:05       40 阅读
  7. 开启gitlab中远程连接pgsql

    2023-12-07 13:40:05       28 阅读
  8. 【原创】Mac mini M1安装home-brew

    2023-12-07 13:40:05       35 阅读
  9. AURIX TC芯片中DSU实现安全启动

    2023-12-07 13:40:05       37 阅读
  10. 网络攻击有什么危害,该如何防御

    2023-12-07 13:40:05       39 阅读