首页 > 编程知识 正文

python自动化测试开发,python自动化测试框架有哪些

时间:2023-05-06 12:46:02 阅读:40988 作者:2652

前言:

在任何软件开发过程中,日志记录都是必须的。 记录日志有助于诊断问题。 后续的大数据统计也必须使用日志提供原始数据。

Python日志库:

logging --- Python日志记录工具这是Python官方提供的日志记录库。 具有无需安装,直接导入即可使用的优点。

日志级别:

在使用python记录日志之前,必须知道什么是日志级别。 然后为什么要划分等级呢? 首先,日志级别是正在记录的进程的输出数据的定义。 日志级别的优点是,容易找到日志,按级别汇总日志,分析系统中可能存在的问题。 例如,如果有日志文件,其中一半是错误级别的记录,不是就能反映出系统设计存在问题吗? 日志级别通常分为以下类别:

调试:程序调试错误时使用

INFO :程序正常运行时使用

警告:程序不会按预期运行,但不是错误。 例如,用户的登录密码错误

错误:在程序发生错误时使用,例如: io操作失败时

CRITICAL :用于程序无法继续运行的情况,如:磁盘空间空闲,这是一个特别严重的问题。 通常很少使用

在生产环境中,通常只需使用三个类别(INFO、WARNING和ERROR )进行日志记录就可以满足记录的需要。 关于什么时候需要使用哪一个,这个根据实际的代码来选择。

日志尝试:

在pycharm中创建新的LogTest.py文件,然后复制并运行以下代码:

#-* -编码: utf-8-* -

导入日志

#配置日志文件

logging.basicConfig (

filename='example.log ',#保存的文件名

level=logging.DEBUG,

datefmt=' [ % y-% m-% d % h : % m : % s ],#日期格式

格式=' % [ asctime ] s % [ levelname ] s % [ filename ] s [ % [ line no ] d ] % [ thread name ] s 3360 % [ message ] s ',#

logging.debug ('这是调试时记录的日志信息') )

logging.info (“程序正常运行时记录的日志信息”)

logging.warning (('程序警告日志中的信息') ) ) ) ) ) ) )。

logging.critical (“特别严重的问题”

logging.error ('程序错误时的记录,例如网络请求太慢等) )

执行结果:

部分参数说明:

''''

格式说明:

asctime:日期信息

levelname:日志级别

filename:当前正在运行的程序的文件名

lineno:程序执行的行数

threadName:线程名称

消息:的具体说明信息

''''

返回结果:

[ 2020-12-1011336021336037 ] debuglog test.py [ 11 ] mainthread :这是调试时记录的日志信息

[ 2020-12-1011336021336037 ] info logtest.py [ 12 ] mainthread :程序正常运行时记录的日志信息

[ 2020-12-1011336021336037 ]警告日志. py [ 13 ] mainthread :程序警告日志的信息

[ 2020-12-1011336021336037 ]关键logtest.py [ 14 ] mainthread :是一个特别严重的问题

[ 2020-12-1011336021336037 ]错误记录. py [ 15 ] mainthread :程序错误时的记录。 例如,网络请求太慢等

返回到结果说明:

[2020-12-10 11:21:37]日志记录时间

调试日志级别

LogTest.py执行的文件名

[11]代码行数

维护主线程

:冒号后面有你记录的数据

在实际项目中使用:

以我们前两章的http接口测试demo为例,我们一起使用,在pycharm中记录新的Request.py文件,然后复制并执行以下代码:

导入请求

导入熊猫

导入时间

导入日志

#http请求demo

def GetTest () :

#接口请求

URL=' https://open API.DVR 163.com/message/nonce '

Param={ #传递的参数、词典类型、所有参数都写在这里就可以了

' method':'get '

}

logging.info (启动' get请求并获取接口参数) )

rque=requests.Get(URL,Param ) #启动get请求

logging.info ('请求成功') ) )。

#测试数据

data={

'接口' : '获取服务器验证码',#接口名称

' time ' 3360 time.strftime (% y-% m-% d _ % h : % m : % s ),time.localtime ),#测试时间

' status code ' : [ rque.status _ code ],#接口响应状态代码

' response ime ' : [ rque.elapsed.total _ seconds (),#接口响应时间

“Response DATA': Rque.text,#响应中的数据并不是所有接口都返回json格式,因此在此处建议使用text

' requestbody ' : rque.request.body,#发送的数据,get请求的数据都在url中

' Url': Rque.url,#请求的url

#请自己添加更多参数

}

logging.info ("将测试数据写入csv文件"

建议写入csv,并将以下两行代码封装在函数中

数据CSV=pandas.data frame (数据) () ) ) ) ) ) ) ) )。

DATACSV.to_CSV(Chen.CSV ),index=False,mode='a ',header=False,encoding='GBK ' ) )

logging.info (“成功写入CSV文件”

if __name__=='__main__':

logging.basicConfig (

filename='./example.log ',

level=logging.DEBUG,

datefmt=' [ % y-% m-% d % h : % m : % s ]、

格式=' % [ asctime ] s % [ levelname ] s % [ filename ] s [ % [ line no ] d ] % [ thread name ] s 3360 % [ message ] s ',

GetTest () )

执行结果:

让我来解释一下:

记录日志时,必须设置日志文件的输出路径、输出格式和这些参数。 如果是单个py文件,则可以直接写在函数中,但如果项目分为多个模块,则不能为每个函数放置一次。 这不利于代码的维护。 因此,用主函数设定即可,logging用主函数设定一次即可,无需设定调用的模块,所以在主文件的if__name_=='_main_'3360中设定结构信息

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。