简述:
Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是开源、跨平台的。
Appium的特点
•支持多平台。
•支持多语言。
•不依赖源代码
•无需重新编译或修改应用即可测试。
•可自动录制脚本(仅Mac版支持)。
仅仅支持UI测试,不支持单元测试。
Appium支持的平台及语言框架
•可用于IOS和Android以及Firefox的操作系统。
•java、Objective-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。
Appium工作原理
Appium-Client
•QA人员编写测试脚本。
•脚本可用多种语言支持。
•脚本将配置及命令发送到server端。
Appium-Server
•默认开启4723端口接受client请求
•默认开启4724用于和android通讯
移动设备
•接收命令驱动本地自动化。
•会安装Appiumsetting,unlock两个apk。
会安装bootstrap.jar
Appium环境安装
•安装Android开发环境,添加环境变量。
如JDK,SDK,AndroidStudio,环境变量
ANDROID_HOME, tools 和 platform-tools。
•安装Node.js到C盘。
Appium使用Node.js作为服务器引擎
https://nodejs.org/
https://nodejs.org/en/download/
•安装Appium到C盘。
npm install -g appium安装。
配置node_modules的.bin到环境变量path。
命令行appium-doctor,检查环境是否OK。
可能会提示需要.net framework 4.0,4.5。
http://appium.io/
https://bitbucket.org/appium/appium.app/downloads/
•AppiumJava-client jar包。
implementation 'io.appium:java-client:4.1.2'
https://github.com/appium/java-client
•下载selenium jar包。
implementation'org.seleniumhq.selenium:selenium-server-standalone:2.53.0'
selenium 是一个web的自动化测试工具。
http://docs.seleniumhq.org/download/
Appium案例演示
•启动Appium。
命令行输入appium或点击appiumgui图标。
其他自动化框架
•Robotium
•Macaca
•淘宝TMTS
•Espresso
图片转自: https://blog.csdn.net/qq_16206535/article/details/79586818
--------------------------------------------------分割线--------------------------------------------------
基于appium源码 1.6.3 运行,发现运行一段时间后,会出现内存溢出.
用node-heapdump生成heap快照 发现多了很多字符串对象:内容如下
02-22 14:50:57.128 23384 23402 I AccessibilityInteractionClient: Node cache hit
然后google,发现,这段是由android AccessibilityInteractionClient.java中输出的,
最后怀疑到是appium取android日志,没有释放,所以内存一直在增涨
通过查找,在appium-adb的logcat.js这个文件,有开启接收logcat日志,并到this.logs[]中,
但是没有地方,将这个日志取出来,释放,所以就内存一直在上涨,最后out of memory.
如下图:
这样只要针对下药,将push log的地方,注释后,就正常了。
注:关于node-heapdump请看 使用node heapdump