Android自动化测试框架一、Appium

简述:

Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是开源、跨平台的。

Appium的特点

•支持多平台。

•支持多语言。

•不依赖源代码

•无需重新编译或修改应用即可测试。

•可自动录制脚本(仅Mac版支持)。

仅仅支持UI测试,不支持单元测试。

Appium支持的平台及语言框架

•可用于IOS和Android以及Firefox的操作系统。

•java、Objective-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。

Appium工作原理

Android自动化测试框架一、Appium_第1张图片


Android自动化测试框架一、Appium_第2张图片

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图标。

 

Android自动化测试框架一、Appium_第3张图片

 

Android自动化测试框架一、Appium_第4张图片

其他自动化框架

•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

你可能感兴趣的:(第三方框架)