此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

尽管Airtest脚本运行过程中会输出非常丰富的log信息,并且Airtest报告也会把我们脚本的的运行步骤显示出来,但有时候,我们会需要在脚本里面,插入一些自定义的log内容(比如某些关键点),并且显示在Airtest报告中。

这里就要用到Airtest提供的 log() 接口了。

2. log接口的用法

我们建议大家使用最新版本的Airtest来体验这个 log() 接口,该接口支持传入字符串、非字符串和 traceback 对象:

1)记录一条简单的log

我们可以给 log() 接口传入1个字符串,来非常便捷接插入一条简单的log记录:

log("插入一条log记录")

运行后,我们不仅可以在log查看窗的log日志中看到我们插入的log记录:

[16:02:07][INFO]<airtest.core.api> 插入一条log记录

还可以在生成的Airtest报告中查看到这条log记录:

2)记录一条报错log

如果我们给log接口传入的是 traceback 对象,将会自动在报告中标记为报错步骤:

try:1/0
except Exception as e:log(e)

运行后,我们可以在log日志中看到1条报错的log:

[16:13:55][ERROR]<airtest.core.api> Traceback (most recent call last):File "D:\demo\test02.air\test02.py", line 10, in <module>1/0
ZeroDivisionError: division by zero

Airtest报告也会显示这个 traceback 的log,并且标记为错误步骤:

3)记录一条非字符串的log

上述2种log,已经可以满足我们大部分的log需求了,但是有时候,我们可能会有一些复杂log记录需求,比如 dictlist 这些,所以Airtest的 log() 接口也有支持传入非字符串的内容:

data = {"test": 123, "time": 123456}
log(data,desc="记录1条复杂的log")

在log日志中也会显示成一条 [info] 日志:

[16:22:27][INFO]<airtest.core.api> {'test': 123, 'time': 123456}

同时,Airtest报告也能看到这条复杂log的标题和详细内容:

4)自定义当前log的时间戳

另外, log 接口还支持非常丰富的参数,比如自定义时间戳 timestamp

# 该条log的时间被定义为当前时间
log("自定义log的时间戳", timestamp=time.time())# 该条log的时间被定义为5秒之前
t1 = time.time()
time.sleep(5)
log("自定义log的时间戳", timestamp=t1)
5)自定义当前log的标题

如果是插入1条简单的字符串log,默认会取该字符串作为log的标题显示在报告步骤上;但我们也可以通过 desc 参数,来自定义一些复杂log的标题,像示例3)那样,就有自定义log的标题。

当然,这对传入普通字符串的log也是同样适用的:

log("123",desc="这是1条log")

6)给当前log截取屏幕图像

有一些情况下,插入一些关键的log还不足以让我们去看到更多的信息,所以我们支持在保存log的同时,截取当前的屏幕画面,去获取更多的测试信息:

log("截图log",snapshot=True)

3. 拓展-如何过滤大量的log日志

那其实在Airtest的log日志这块,同学们除了希望自定义log之外,还有一点是希望过滤掉一些不关注的log信息,比如,大部分同学可能只关注跑测过程的报错信息,而我们的Airtest脚本跑测过程,会输出大量的log信息:

但其实我们更关注报错信息,类似:

这个时候可以通过下述方式,来帮助我们过滤掉一些我们不关注的信息:

# -*- encoding=utf8 -*-
__author__ = "user"
import logging
logger = logging.getLogger("airtest")
logger.setLevel(logging.ERROR)
from airtest.core.api import *
auto_setup(__file__)

这样只有在运行脚本的开头,会输出少量的log信息,后续都是同学们最关注的的ERROR信息了:

4. 小结

那今天我们介绍了增加自定义log的接口,以及如何过滤Airtest大量log里面我们不关注的部分,后续我们还会持续跟大家分享下,如何把log内容保存在文件中,感兴趣的同学可以关注我们,避免错过后续的推文内容哦!


Airtest 官网:http://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b

官方答疑 Q 群:117973773

呀,这么认真都看到这里啦,帮忙点个赞或者收藏支持下我把,灰常感谢~

如何给Airtest脚本/报告增加log记录相关推荐

  1. Qtum量子链QIP-5提案:在智能合约交易输出脚本上增加签名证明,允许用户以代付方式调用合约

    ​摘 要 Qtum量子链的主要目标之一是建立基于权益共识机制(PoS).并支持 UTXO 的智能合约模型.在智能合约层面上,Qtum 量子链兼容比特币 UTXO 模型和符合 AAL 规范的虚拟机,其中 ...

  2. 切片器可以设置日期格式?_用Excel切片器为你的数据报告增加交互功能,很简单!...

    关注回归线  Excel变简单 从Excel 2013开始,在"插入"菜单中,出现了一组工具:筛选器,其中有两个工具:切片器和日程表 这两个工具可以让我们更加直观的为Excel数据 ...

  3. git拆分子目录作为新仓库并保留log记录

    需求描述: 现有一个非常之庞大(大的过分)的git仓库,包含了N多个项目的源码,项目各个阶段的文档,原型等.对于新用户来说,clone一次需要很长时间(网速也是槽点).因此决定将原仓库拆分,将源码子目 ...

  4. 【博学谷学习记录】超强总结,用心分享 | 狂野大数据shell脚本个人学习复习记录—PART-03

    shell脚本个人学习&复习记录--PATR-01 shell脚本个人学习&复习记录--PATR-02 Shell的函数 function可以不用写 ()中不能放任何东西#定义函数-- ...

  5. 【博学谷学习记录】超强总结,用心分享 | 狂野大数据shell脚本个人学习复习记录—PART-02

    shell脚本个人学习&复习记录PART-01:CSDN 7.shell的流程控制语句 if语句 数字判断 -eq:等于 -ne:不等于 -gt:大于 -lt:小于 -ge:大于等于 -le: ...

  6. 编写一个脚本,统计log文件中首个单词出现的次数

    在[金阳光测试]Android自动化第一季第一讲--预备知识中有这样一个面试题 题目如下: 编写一个脚本,统计log文件中首个单词出现的次数,如: error:xxx waring:xxx error ...

  7. CentOS下查看最后登录的用户信息以及LOG记录

    CentOS下查看最后登录的用户信息 tail /var/log/messages tail /var/log/secure 我们知道,在redhat下可以用lastlog查看各用户最后登录的信息,用 ...

  8. 如何对系统中设置的修改记录增加log日志

    前段时间有个用户打电话给我,苦兮兮的说,他们的自定义的报表版本的内容不知道给谁删除的干干静静,然后咬牙切齿的说,一定要设个blog,抓住这个乱改的家伙. 我给他的答复是,对不起,自定义报表的行列字段修 ...

  9. nginx log记录请求响应日志及日志分割

    之前部署了quic的集群在aws,在测试的时候发现在大报文的情形下HTTP3的请求耗时比较不稳定,并且耗时比普通的HTTP2要大很多,就想看看请求的具体耗时有多少 请求响应日志记录 我的quic集群是 ...

最新文章

  1. selenium 中装饰器作用
  2. CRUD之delete操作
  3. 昆明二级计算机考试报名时间2015,4月15日开始网上报名!云南省2021年上半年中小学教师资格考试(面试)安排来了——昆明广播电视台...
  4. nodejs 定时 mysql_nodejs 使用 mysql
  5. strstr,strrchr,strpos,strrpos的区别http://blog.qit...
  6. emlog和typecho文章采集插件 简数第三方数据采集
  7. ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得NUMBER
  8. 从零开始学统计 05 | 技术重复和生物学重复
  9. 20220721挨揍内容
  10. 北理大编程作业:确定母亲节
  11. 计算机主机上有几个按钮,电脑键盘各个按键有哪些作用 电脑键盘各个按键作用介绍...
  12. 【虚幻引擎UE】UE5 六步实现UE5在网页端查看(云渲染+像素流) 4.26和4.27原理类似
  13. AStar(A*)算法
  14. 干辣椒和鲜辣椒的区别
  15. 京东2021年618项目规划——附下载
  16. 机器学习算法-线性回归
  17. iOS 使用HMAC
  18. js——获取data-id 的值
  19. 备战一年,终于斩获腾讯T3,我坚信成功是可以复制的
  20. 相位解包裹 matlab,二维相位解包裹matlab

热门文章

  1. SQL相关知识点(一)
  2. Laravel+layui实现的通用后台管理系统
  3. quartus 13.0 网络盛传的破解方法勘误(网传大多数破解步骤有误)
  4. 用计算机的画图工具画画,电脑绘画软件哪个好用?电脑绘画软件推荐
  5. NTKO OFFICE文档控件为何不能自动装载?
  6. 学习单片机的几点经验之谈
  7. 【奥斯卡理财星体系 第五章】丨手把手教你从零开始搭建资产配置
  8. 中国日报华为鸿蒙,筑牢国产软件之“根”——对话华为鸿蒙负责人王成录
  9. vue-element-admin 快捷导航(标签栏导航)切换不刷新问题
  10. log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件