所要解决的问题:在使用 appium 桌面版执行活动的时候,log 日志都是输出在对话框中,并存在内存中。如果执行时间过长,输入的日志过多,就会出现内存不足的情况,appium 就会停止运行。
解决的方案:更改 APPIUM 的源码的中 logger.js 文件中对于日志输出的处理,不在桌面窗口中输出日志,就可以避免内存不足导致停止运行的情况了。
修改步骤:
1.找到 logger.js 并打开
文件位置在:自己的安装路径\node_modules\appium\lib\server 下文件名为 logger.js
2.找到文件中下面一段代码:
var msg = logObj.message && logObj.prefix ?
(logObj.prefix + ": " + logObj.message) :
(logObj.prefix || logObj.message);

这部分的意思就说获取需要输入日志的消息体,将此处的代码屏蔽后新增一条
var msg = " "

3.更改 _createConsoleTransport下的, level: logLvl:
, level:logLvl更改为, level:"error"

这一部分是实现 log 信息传输到控制台的方法
4.找到如下的代码:
if (levels[logger.transports.console.level] === levels.debug) {
logger.debug = function (msg) {
logger.info('[debug] ' + msg);
}
}

logger.info('[debug] ' + msg);屏蔽掉即可

这一部分是实现将 debug 的信息转化为 info 等级的 log 日志。

完成上面的操作保存文件,这个时候通过 appium 客户端运行代码的时候就不会在控制台上输入日志了。

欢迎各位加入群聊:547349021,虽然名字叫 selenium,但是我们不限于任何关于测试提升的话题讨论。


↙↙↙阅读原文可查看相关链接,并与作者交流