热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

问题:Appium在ios真机跑一段时间出现ios设备重启、appium自动挂掉

appium-ios真机测试问题描述问题一:磁盘空间不足第一次跑12小时,只跑到1小时多就磁盘已满,电脑崩溃了。问题二:内存溢出第二次清理了磁盘后,继续重跑,内存溢出,
appium-ios真机测试

问题描述

问题一: 磁盘空间不足

第一次跑12小时,只跑到1小时多就磁盘已满,电脑崩溃了。

问题二:内存溢出

第二次清理了磁盘后,继续重跑,内存溢出,appium自动挂掉,问题未解决。

问题三:ios设备重启(使用Appium Desktop速度很慢,建议使用appium server)

第三次用appium desktop重跑,ios设备跑同一条的时间不断增长达到一定数量后就自动重启ios设备导致后面全挂。

    使用appium server,重启的问题解决了

第四次改用appium server重跑,ios设备仍然会遇到内存溢出,appium自动挂掉

回归到问题二:内存溢出

第五次,升级了appium server,并使用下面的方法启动appium:node --max-old-space-size=4096 main.js,问题解决了

内存溢出的错误信息如下:

<--- Last few GCs --->

[38241:0x103001800]  9917462 ms: Mark-sweep 117.9 (163.8) -> 117.8 (130.8) MB, 72.9 / 0.0 ms  (average mu = 0.941, current mu = 0.000) last resort GC in old space requested
[38241:0x103001800]  9917531 ms: Mark-sweep 117.8 (130.8) -> 117.8 (130.8) MB, 68.6 / 0.0 ms  (average mu = 0.901, current mu = 0.000) last resort GC in old space requested
<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0xc3a85f46381]
Security context: 0x1bee5f81e589
    1: toString [0x1bee3588a9b9] [buffer.js:~642] [pc=0xc3a888d3cb2](this=0x1bee9e907c51 ,encoding=0x1beec0b022e1 ,start=0x1beec0b022e1 ,end=0x1beec0b022e1 )
    2: arguments adaptor frame: 0->3
    3: InternalFrame [pc: 0xc3a85b90a15]
    4: EntryFrame [pc: 0xc3a85b8a1c1]
    5: ExitFrame [pc:...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - Javascript heap out of memory
 1: node::Abort() [/usr/local/bin/node]
 2: node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
 3: v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
 4: v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
 5: v8::internal::Heap::AllocateRawWithRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
 6: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/usr/local/bin/node]
 7: v8::internal::Factory::NewStringFromUtf8(v8::internal::Vector, v8::internal::PretenureFlag) [/usr/local/bin/node]
 8: v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::NewStringType, int) [/usr/local/bin/node]
 9: node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding, v8::Local*) [/usr/local/bin/node]
10: void node::Buffer::(anonymous namespace)::StringSlice<(node::encoding)1>(v8::FunctionCallbackInfo const&) [/usr/local/bin/node]
11: 0xc3a85f46381
12: 0xc3a888d3cb2
Abort trap: 6

解决办法:

1. 到appium server所在的启动路径,用命令:which appium可以查到路径:
$ which appium
/usr/local/n/versions/node/10.4.0/bin/appium
上面的文件里的appium是个快捷方式,查找路径的步骤:
* finder右击-‘前往文件夹’打开目录/usr/local/n/versions/node/10.4.0/bin
* 找到appium文件,右击选择‘显示原身’,会跳转到appium所在的路径
* 右击上一步跳转到的文件,选择‘显示简介’
* 复制位置:/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/build/lib

2. 采用以下命令启动appium:将appium内存扩展到4096MB

    $ cd /usr/local/n/versions/node/10.4.0/lib/node_modules/appium/build/lib
    $ node --max-old-space-size=4096 main.js

注意:此问题并未得到实质性的解决,如果磁盘空间不够大,跑很长时间后会发现系统的空余磁盘空间不断缩小,闪存不断增大,直到系统撑不住。重启Mac后,系统磁盘空间会恢复到原来的大小。

参考文章:
    监控内存:如何查node js里的内存泄漏https://blog.risingstack.com/finding-a-memory-leak-in-node-js/


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • 数据结构与算法习题replacementselectionsort(置换选择排序)TimeLimit:1000msMemoryLimit:65536kBDescrip ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
author-avatar
DaybreakCP
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有