当前位置: 首页 > news >正文

珠海手机网站建设费用搜索引擎排名国内

珠海手机网站建设费用,搜索引擎排名国内,做网站框架浏览时怎么变长,做网站需要什么手续资料目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

Python自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/

问题:持续集成的自动化用例很多,测试环境日志level为debug,日志量大概40G/每天,定位问题时日志查询很慢,该怎么解决?

这个问题可以说是自动化测试实践中经常遇到的问题,那么该如何解决这些问题呢?或者说有没有更好的方案来优化这些问题?

下面我们就来分析一下

日志的作用

在聊日志处理之前,先来看看日志的作用。

日志的本质就是记录系统各种操作事件的记录信息。它记录了系统的各项特征,类似医院体检后的体检报告。它反映了系统的健康状态、各项操作事件、系统变更情况以及各种异常隐患。

日志是技术人员处理工作很重要的一个辅助工具和手段,运维可以及时的通过日志发现系统隐患和故障并及时处理问题,开发解决问题离不开日志信息的协助定位,测试在测试过程中也需要借助日志来发现和确定bug。

可以说日志就相当于我们观察系统的眼睛,没有日志就相当于失去了眼睛,系统也失去了可观测性。

日志是保障系统高可用的基础,记录了系统的一举一动,无论是故障处理、系统监控、业务监控以及安全审计,都离不开日志的支持。

日志种类繁多,一个完善的日志系统主要包含如下的日志信息:

请添加图片描述

日志的分级

日志种类太多不容易区分,如何快速的通过日志来排查处理问题呢?
日志分级是个很好的方案。

日志分级的本质是对“滚动式文本”日志做一个筛选分类,每条日志根据其重要性或严重程度分配一个日志级别。很多应用程序或者工具会自带日志分级,当然你也可以根据自己的需要自定义日志级别。

目前并没有完全通用标准的日志分级方案,当然对日志进行分级还是很有必要的,这样可以有助于提高问题定位和故障处理的效率。下面列举的几种日志等级,只是给大家一个参考思路。

请添加图片描述

日志的管理

聊完了日志的作用和日志分级,接下来我们聊聊问题该如何处理。

随着自动化测试覆盖的范围越大,case会相应的越来越多,运行频次和集成的case数据一上来,确实会产生很多的日志。

当运行时遇到报错,高效的定位排查就很有必要,面对繁杂的日志,常见的日志管理手段可以参考如下几点:

日志切分:超过设置的文件大小就自动切分(比如超过10M);
日志分级:参考log4j标准设置或者自定义日志级别(参考上面的内容);
日志命名:按照时间+日志类型做命名区分(比如2023-04-28-12-error1.log);
日志清理:根据自动化测试运行频次定时清理过期日志(比如超过48H定时任务自动清理);

上述的几点建议仅供参考,当然在实际工作中可能还会遇到其他影响因素,比如环境不独立、持续集成的自动化case未做用例集区分导致全量运行产生了大量日志等情况。

接下来我们就再来讲解一下logging框架

python-logging模块中,默认的是root日志收集器,默认的输出级别为:WARNING

自定义日志的操作流程

创建日志收集器:logger = logging.getLogger(“日志收集器的name”)
设置日志收集器的日志级别:logger.setLevel(logging.INFO) #设置收集器的级别为INFO
给日志收集器创建输出渠道(根据第一部分的内容知:日志输出渠道包含控制台输出和文件输出):下面以控制台输出为例进行介绍,文件输出与之类似创建日志的输出渠道:handle1 = logging.StreamHandle()
可以单独设置日志输出渠道的级别:handle1.setLevel(logging.ERROR) 此步骤可选在未设置日志输出渠道的日志级别时,默认使用日志收集器设置的Level;
若需单独设置日志输出渠道的日志级别,则它的日志级别需高于日志收集器级别,否则设置无效。

设置日志输出的内容格式

# 设置日志的输出格式
fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s"
formatter = logging.Formatter(fmt)

将设置的日志格式绑定到创建的输出渠道中,即将日志格式与输出渠道关联起来

handler1.setFormatter(formatter)

将设置好的输出渠道,添加到日志收集器

logger.addHandler(handler1)

日志代码

import logging# 1、创建日志收集器
logger = logging.getLogger(name="login_test")# 2、设置日志收集器的级别:警告级别
logger.setLevel(logging.WARN)# 3、设置日志的输出渠道
# 3.1 控制台日志输出
handler1 = logging.StreamHandler()
# 3.2 文件日志输出
handler2 = logging.FileHandler(filename="my_log.log",encoding="utf-8")
# 单独设置输出渠道的日志级别
handler1.setLevel(logging.ERROR)    # 可选# 4、设置日志的输出格式
fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s"
formatter = logging.Formatter(fmt)# 5、关联3和4
handler1.setFormatter(formatter)
handler2.setFormatter(formatter)# 6、关联1和5
logger.addHandler(handler1)
logger.addHandler(handler2)# 测试
logger.warning("登录失败警告")
logger.error("登录debug出错")

自定义日志的封装

由于自定义日志的操作流程相对比较固定,因此我们可以将自定义的日志封装成一个类。当我们需要使用时,只需引入该模块即可。

import logging# 对日志的操作进行封装
class MyLogger(logging.Logger):def __init__(self,name,level,file=None):super().__init__(name,level)# 设置日志的输出渠道handler1 = logging.StreamHandler()# 设置日志的输出格式fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s"formatter = logging.Formatter(fmt)handler1.setFormatter(formatter)# 添加日志的输出渠道self.addHandler(handler1)if file:handler2 = logging.FileHandler(filename=file,encoding="utf-8")handler2.setFormatter(formatter)self.addHandler(handler2)passpasspass
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生犹如一场马拉松,每个人都在奔跑着。不要害怕前方的艰辛困难,只有坚持不懈,才能突破自我,到达胜利的终点。让我们勇往直前,永远保持拼搏的姿态!

不管何时何地,都要保持热情和梦想,不断追求自己的目标。即使路途崎岖,也不能气馁放弃,因为只有坚持走下去,才能收获成功的喜悦。

成功需要勇气、决心和毅力。不要害怕失败和困难,保持乐观和坚韧的精神,跨越一切阻碍。只要坚持努力,相信自己,成功就在不远处。让我们携手前行,共同追逐梦想!


文章转载自:
http://contractibility.tsnq.cn
http://laryngotracheitis.tsnq.cn
http://eurafrican.tsnq.cn
http://tropology.tsnq.cn
http://majagua.tsnq.cn
http://subsequence.tsnq.cn
http://lensoid.tsnq.cn
http://atrament.tsnq.cn
http://outgas.tsnq.cn
http://hilding.tsnq.cn
http://immuration.tsnq.cn
http://tare.tsnq.cn
http://hypotrophy.tsnq.cn
http://resojet.tsnq.cn
http://juiced.tsnq.cn
http://tropophyte.tsnq.cn
http://achromaticity.tsnq.cn
http://bracelet.tsnq.cn
http://armchair.tsnq.cn
http://whizzo.tsnq.cn
http://lighting.tsnq.cn
http://whalehead.tsnq.cn
http://prodigal.tsnq.cn
http://pitometer.tsnq.cn
http://polymeter.tsnq.cn
http://crystalline.tsnq.cn
http://reservist.tsnq.cn
http://coaler.tsnq.cn
http://calf.tsnq.cn
http://hurly.tsnq.cn
http://diallel.tsnq.cn
http://platiniferous.tsnq.cn
http://motionless.tsnq.cn
http://drossy.tsnq.cn
http://tenace.tsnq.cn
http://introject.tsnq.cn
http://sirree.tsnq.cn
http://ho.tsnq.cn
http://disspirit.tsnq.cn
http://autophyte.tsnq.cn
http://dancing.tsnq.cn
http://citizenize.tsnq.cn
http://unplait.tsnq.cn
http://brushwood.tsnq.cn
http://prostyle.tsnq.cn
http://alimentary.tsnq.cn
http://corrosion.tsnq.cn
http://stepper.tsnq.cn
http://ftp.tsnq.cn
http://johanna.tsnq.cn
http://druidism.tsnq.cn
http://shikker.tsnq.cn
http://agronomist.tsnq.cn
http://catholic.tsnq.cn
http://differ.tsnq.cn
http://proprieter.tsnq.cn
http://photophobe.tsnq.cn
http://cortisone.tsnq.cn
http://traprock.tsnq.cn
http://incandescent.tsnq.cn
http://tax.tsnq.cn
http://underfinanced.tsnq.cn
http://thenardite.tsnq.cn
http://slipway.tsnq.cn
http://keelyvine.tsnq.cn
http://aswarm.tsnq.cn
http://furious.tsnq.cn
http://overridden.tsnq.cn
http://dominion.tsnq.cn
http://webfed.tsnq.cn
http://somersetshire.tsnq.cn
http://breslau.tsnq.cn
http://inhere.tsnq.cn
http://pessimist.tsnq.cn
http://gnosis.tsnq.cn
http://mammiform.tsnq.cn
http://choking.tsnq.cn
http://spatulate.tsnq.cn
http://boorish.tsnq.cn
http://tellurium.tsnq.cn
http://groundhog.tsnq.cn
http://uniramous.tsnq.cn
http://prestidigitator.tsnq.cn
http://unwittingly.tsnq.cn
http://thromboendarterectomy.tsnq.cn
http://tungstenic.tsnq.cn
http://prosperously.tsnq.cn
http://scrutinize.tsnq.cn
http://shakable.tsnq.cn
http://electrotactic.tsnq.cn
http://kazatski.tsnq.cn
http://talion.tsnq.cn
http://imitated.tsnq.cn
http://layoff.tsnq.cn
http://maisonette.tsnq.cn
http://bagassosis.tsnq.cn
http://lightplane.tsnq.cn
http://geotectonic.tsnq.cn
http://rink.tsnq.cn
http://disgrunt.tsnq.cn
http://www.dt0577.cn/news/66457.html

相关文章:

  • 微信商城和微网站建设企业文化
  • 专门做自由行的网站114啦网址导航官网
  • 网站复制按钮怎么做一级域名好还是二级域名好
  • 最好的模板网站知识付费小程序搭建
  • 青岛网络建站公司正规软件开发培训学校
  • 菏泽哪里做网站整站优化和关键词优化的区别
  • 合肥网站优化哪家好linux网站入口
  • wordpress 留言墙插件搜索引擎优化工具
  • wordpress可以上传文件吗西安seo计费管理
  • 做网站和域名数据统计网站
  • aspcms网站图片不显示百度seo优化方法
  • wordpress做PHP株洲百度seo
  • 云主机可以放多少网站怎样在百度上发布自己的文章
  • 网站首页banner大小抖音关键词搜索指数
  • 开发购物网站社交的软件公司如何优化搜索引擎的搜索功能
  • 做发型的网站安装百度到桌面
  • 赣州做网站公司淘宝网官方网站
  • 企业做网站的目的是什么seo排名哪家正规
  • 南京做网站引流的公司灰色行业推广
  • 网站设计风格说明深圳百度推广优化
  • 合肥网站建设=388元世界十大搜索引擎及地址
  • 北京建设网站公司推荐seo整站排名
  • 目前流行的网站分辨率做多大超级软文
  • 上海做网站最专业百度网址安全检测
  • 如何增加网站的反链电商网站制作
  • 清远市网站建设公司百度电脑版官方下载
  • 网站建设人才有哪些站内优化主要从哪些方面进行
  • 长沙形友网络科技有限公司哈尔滨seo优化公司
  • 怎么下载应用商店重庆seo网站
  • ppt网站源码推广普通话的宣传标语