inspect python模块_基础入门_Python-模块和包.运维开发中inspect自省模块的最佳实践?...

简单介绍:

说明: 此模块提供了一系列自省函数,可获取模块/类/方法/函数/traceback/帧对象/代码对象的信息

快速安装:

内置模块

测试相关:

inspect.ismodule(object) -> True/False

说明: 判断object是否为模块

inspect.isclass(object) -> True/False

说明: 判断object是否为类

inspect.ismethod(object) -> True/False

说明: 判断object是否为方法

inspect.isfunction(object) -> True/False

说明: 判断是否为函数

inspect.isgeneratorfunction(object) -> True/False

说明: 判断是否为生成器函数

inspect.isgenerator(object) -> True/False

说明: 判断是否为生成器

inspect.isbuiltin(object) -> True/False

说明: 是否为内置对象

inspect.isabstract(object) -> True/False

说明: 是否为抽象基类

源码相关:

inspect.getdoc(object) -> str

说明: 获取object的documentation信息

inspect.getfile(object) -> str

说明: 获取object的原始加载文件

堆栈相关:

inspect.stack([context]) -> list

说明: 获取运行时基于上下文的堆栈信息

最佳实践:

1. 今天老大安排测试环境下RPS业务服务功能/性能测试,由于RPS开发初期版本迭代更新很快,希望快速定位自动化测试插件异常点,方便快速定位问题,但部分依赖多个子服务的插件,在测试报告中需要包含目标主机/插件名称/函数名称/异常行数/异常信息等字段,而inspect内置模块刚好可以提取运行时堆栈信息~#!/usr/bin/env python

# -*- coding: utf-8 -*-

"""

#

# Authors: limanman

# OsChina: http://xmdevops.blog.51cto.com/

# Purpose:

#

"""

# 说明: 导入公共模块

import inspect

import pprint

# 说明: 导入其它模块

def rps_device():

try:

raise ValueError, 'with value error. '

except ValueError, e:

return inspect.stack()[0][-4:-2], e.message

return

def rps_client():

try:

raise ValueError, 'with value error.'

except ValueError, e:

return inspect.stack()[0][-4:-2], e.message

return

def rps_testing(add_data=None):

exec_ret_dicts = {

'status': 0,

'errors': '{0[0][1]}: {0[0][0]} with error ## {0[1]}'

}

result = rps_device() or rps_client()

exec_ret_dicts['status'] = 0 if not result else 1

exec_ret_dicts['errors'] = exec_ret_dicts['errors'].format(result)

return exec_ret_dicts

if __name__ == '__main__':

pprint.pprint(rps_testing())

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值