2.10. 使用 pudb 调试 Tempest 测试
您可以使用 pudb
创建和自定义断点,供您用于调试 Tempest 测试。
先决条件
- 您已配置了 debug 模式。有关 debug 模式的更多信息,请参阅 第 2.9 节 “使用 debug 模式”。
流程
获取您要在其中使用
pudb
的 pod 的名称:$ oc get pods | grep -i <pod_name>
-
将 <
pod_name
> 替换为您在 Tempest 自定义资源配置文件中指定的名称,如tempest-tests
,或者只能使用$ oc get pods
并搜索相关的 pod。
-
将 <
远程访问 pod:
$ oc rsh <pod_name>
-
将 <
pod_name
> 替换为您在上一步中获取的 pod 的名称。
-
将 <
进入正确的目录:
sh-5.1$ cd /var/lib/tempest/openshift
创建 Python3 轻量级虚拟环境:
sh-5.1$ python3 -m venv --system-site-packages .venv
激活 Python3 轻量级虚拟环境:
sh-5.1$ . .venv/bin/activate
在 Python3 轻量级虚拟环境中下载并安装
pudb
:(.venv) sh-5.1$ pip install pudb
找到您要调试的文件的路径,如
test_networks.py
:(.venv) sh-5.1$ find / -name test_networks.py 2> /dev/null
打开您选择的文件进行编辑:
(.venv) sh-5.1$ sudo vi /usr/lib/python3.9/site-packages/tempest/api/network/test_networks.py
-
将行
导入 pudb; pu.db
插入到要创建pudb
断点的文件,然后保存并关闭该文件。 更改所有权:
(.venv) sh-5.1 $ sudo chown -R tempest:tempest /var/lib/tempest/.config
使用
pudb
断点运行测试:(.venv) sh-5.1 $ python -m testtools.run tempest.api.network.test_networks.NetworksTest.test_list_networks
验证
-
pudb
接口将打开。在测试完成前,您可以与pudb
接口交互。