【分享】pytest-pdb 调试代码

前言

写自动化,元素定位调试和元素定位失败都是比较麻烦的事,对于定位调试,可使用复用浏览器的方法来,此次分享一个使用pdb方法,来对元素调试或定位。
在 pytest 中,可以直接使用 --pdb 参数在测试失败时开启调试,主要参数如下:

pytest --pdb              # 每次遇到失败都跳转到 PDB
pytest -x --pdb           # 第一次遇到失败就跳转到 PDB,结束测试执行
pytest --pdb --maxfail=N  # 只有前N次失败跳转到 PDB

pdb 提示符出现后,便可以使用 pdb 的交互调试功能,查看错误时,有以下常用命令:

  • p/print expr :输出变量 expr 的值;
  • pp expr :美化输出 expr 的值;
  • l/list :列出错误并显示错误之前和之后的5行代码;
  • l/lsit begin, end :列出错误,并显示指定行号之间的代码;
  • a/args :打印当前函数的所有参数和变量;
  • u/up :移动到堆栈的上一层;
  • d/down :移动到堆栈的下一层;
  • q/quit :退出当前调试会话(也会退出测试会话)

案例

利用pdb特性,失败时进入调试模式,所以故意写错,然后进入pdb调试模式,
也可以直接使用pdb模式。

from  selenium import  webdriver
def test_aa():
    driver=webdriver.Chrome()
    driver.get('http://www.baidu.com')
    ele=driver.find_element_by_css_selector('#kw')
    1/0

命令行执行pytest -vs --pdb,程序会在1/0处报错,此时进入pdb模式
在输入send_keys操作,查看浏览器此时输入成功
image

如果此时需要点击操作也是可以的
image
查看浏览器即可看到效果。

参考: 【pytest】pdb 调试_waitan2018的博客-CSDN博客

1 Like