一、Python 模块导入路径配置
问题现象: PyCharm 中运行一切正常,但是到命令行中(cmd 命令行或 PyCharm 的 Terminal 窗口)运行 py 文件,就会报错 No module named xxx。
问题原因: PyCharm 在每次运行时,都会检索整个工程目录,把目录都添加到 sys.path 中,运行的时候,就能够找到对应的模块.py 文件。命令行运行时由于目录没有添加到 sys.path 中,所以会报错:No module named xxx。
解决方案: 比如 order.py 文件中引入了 http_utils.py,order.py、http_utils.py 文件在项目中的目录结构如下:
根目录
----utils
-------http_utils.py
----testcases
-------mainprocess
-----------order.py
则在 order.py 文件中,头部添加以下代码:
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
from utils.http_utils import *
其中 os.path.abspath(file) 用来获取本文件的绝对路径,os.path.dirname 用来获取参数的直接全路径。
可以理解通过这段代码,定义了 order.py 需要向上找 3 层,就找到项目根目录,所以这里要写 3 个 os.path.dirname。找到根目录后才能正常的从 utils 目录找到 http_utils.py,因此就不会再报错:No module named xxx。
二、自定义异常处理
实际工作中有太多的场景是内置的异常所触及不到的,而这时候使用我们自己定义的异常类型就可以更好的打通业务。自定义异常代码如下:
# 自定义异常
class XError(Exception):
def __init__(self, value=""):
self.value = value
# 用来 print 异常信息
def __str__(self):
return "XError :" + str(self.value)
使用举例:在接口测试代码中使用自定义异常,判断当接口返回的 code 值不为 1 时,就抛出异常:
import requests
json
logging
():
headers = {
:
}
url =
()
( + url)
logging.info( + url)
res = requests.get(url, headers=headers)
( + res.text)
code = json.loads(res.text).get()
( + (code))
(code) == :
:
XError( + res.text)


