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