Python编程实用建议:模块命名、按需引入与日志管理技巧
关于Python自动化测试项目的代码编写规范,我个人给出一些实用的建议:

以下是从一些实际项目中经过N次血泪总结出来的。欢迎大家指正和补充~
0.文件名表示模块方法,方法名表示其具体功能。
举例:
login.py 可以写成 global_login.py 表示全局的登录,所有人可直接调用;
1.按需导入:引入模块时,要考虑清楚将使用哪个类或方法。使用 from xx import xx。除非绝对必要,否则不要使用 from xx import *。 2、建议每个可独立运行的脚本都在底部添加: if __name__ == '__main__':作为测试用例,也可以作为执行示例,这样可以在别人调用或修改它。 3.日志不要溢出,尽量将debug和info分开。调试时使用debug,整个项目运行时使用info。 4、尽量不要使用递归调用,比如self.abc(self),这样违反了面向对象的原则。 5、一份代码“暂时可用”和“目前足够”==凑合,建议参考软件工程的核心标准:高内聚(可以多次复用的代码,可以抽出来作为一个独立的模块),低耦合(调用模块时,不要影响其他正在使用该模块的人的代码,请参考函数式编程思想或者面向接口的编程思想) 6、把操作者当成新手。捕获并抛出异常时:建议提示“问题+解决方案”,自检日志:建议提示“检查什么+”确定性结果”,允许不熟悉的人修改或优化代码7、编写模块和demo文档,让新人尽快上手,让学习者快速理解操作逻辑,快速学会每个模块的基本调用规则是,花20%的时间阅读和80%的时间写,而不是花80%的时间看,20%的时间写【最好提供一个实现最好的demo模板,如下:
import xxx
class DemoPreCheck:
def __init__():
self.check_networt()
self.check_mysql_connet_num()
def check_networt(self):
def check_mysql_connet_num(self):
class TestDemo:
def setup_class(self):
app.info("info:我是开始")
DemoPreCheck()
def teardown_class(self):
app.warn("info:我是结束")
def test_a():
assert 1==1
def test_b():
assert 1==2
if __name__ == '__main__':
#作者在这里写覆盖测试或调用示例代码,也可以代替单测
8. 对代码本身的检查越完整,调用者就越少担心,并且始终将代码视为“只需编写一次,任何人、任何地方都可以轻松运行”——除了特殊平台或硬件架构;