App自动化选型方案

App自动化选型方案

1,工具

经与app业务端测试人员沟通,需求为:

a,脚本,跨平台(iosandroid,微信小程序--后续),跨应用;

b,稳定

c,支持多设备并行测试

下列框架,支持业务端需求,仅有appiumairtest,故目的为,再appiumairtest中选定

Appium

Airtest

solor

Robotium 

Instrumentation

UIAutomator

Appium是一个开源的、跨平台的自动化测试工具,支持IOSAndroidFirefoxOS平台。
 通过Appium,开发者无需重新编译app或者做任何调整,就可以测试移动应用,可以使测试代码访问后端API和数据库。
它是通过驱动苹果的UIAutomationAndroidUiAutomator框架来实现的双平台支持,
同时绑定了Selenium WebDriver用于老的Android平台测试。
开发者可以使用WebDriver兼容的任何语言编写测试脚本,
Java OC JS PHPPython Ruby C#Clojure Perl语言

1,基于图像识别和UI控件识别,操作简单,学习成本低;
2,支持python个性化编程;

1,环境搭建难,学习成本高,框架调试时间长;
2Appium serve让桌面应用程序的发布常常不稳定;
3,稳定性差,长时间自动化运行容易出错;

1,控件定位不够准确;
2,平台化,就存在一定局限性;
3iosandroid需使用不同的系统;

1,应用程序,使用需重复录制
2,不支持微信小程序

不能处理flashweb组件,不支持iOS设备

不支持跨应用

关键功能仅支持java

2,方案

APPIUM

 

Appium架构


Appium是一个用Node.js编写的HTTP服务器,它创建,并管理多个WebDriver会话来和不同平台交互,如iOSAndroid等等。 

Appium开始一个测试后,就会在被测设备(手机)上启动一个服务器,监听来自Appium server的指令。每种平台像iOSAndroid都有不同的运行,和交互方式。所以Appium会用某个桩程序侵入该平台,并接受指令,来完成测试用例的运行。

Appium环境搭建(机器人)


首先需要准备


1jdk(步骤不再啰嗦)

2android SDK,下载地址:http//developer.android.com/sdk/index.html,下载sdk工具,可能需要FQ,提供一个国内下载地址:http//www.androiddevtools.cn/

3appium,下载地址:http//appium.io/

4nodejs,下载地址:https//nodejs.org/en/

5python,下载地址:https//www.python.org/ ,下载3.X的版本。

上述软件都准备好后,则进入搭建步骤。

安装,配置


将上述软件依次安装。

1android sdk安装完毕后,需要配置环境变量

新建ANDROID_HOME D\ ProgramFilesx86\ Android \ android-sdk

PATH中添加:%ANDROID_HOME\平台工具;ANDROID_HOME\工具;

2nodejs安装完毕后,需要配置环境变量

PATH中添加:D\ Program Files \ nodejs;

3appium安装完毕后,需要配置环境变量

D\ Program Filesx86\ Appium \ node_modules \ .bin;

4)配置好后,启动cmd

输入节点-v,查看节点安装版本

输入appium,医生检查appium的安装环境是否成功,如下图:

5)安装Python,配置环境变量,如C\ Python27,检查是否设置成功

基础框架

App自动化选型方案_第1张图片

 

目录结构

1.app

 待测apk/ipa 安装包路径 
 uiautomator2等安装包路径 

2.Base

Android 测试相关: 
BaseAdb.py 
BaseAndroidPhone.py 
BaseApk.py 
BaseLog.py 
BaseLogcat.py 
 
iOS 测试相关: 
BaseIosPhone.py 
BaseIpa.py 
BaseIosLog.py 
 
数据处理相关: 
BaseConfig.py 
BaseExcel.py 
BaseFile.py 
BasePickle.py 
BaseYaml.py 
BaseOperate.py 
BaseReplace.py 
 
测试执行相关: 
BaseAppiumServer.py 
BaseInit.py 
BaseRunner.py 
BaseElements.py 
 
报告相关: 
BaseStatisics.py 
BaseError.py 
BaseEmail.py 

3. iOSCrashAnalysis

iOS crash report  解析相关: 
BaseIosCrash.py 解析脚本 
FileOperate.py 文件操作相关 
symbolicatecrash  xCode自带的解析工具,获取方式:find /Applications/Xcode.app -name symbolicatecrash -type f,复制过来就行了 
 

4.日志

设备日志及持久化数据 
操作日志,失败截图 
crash解析结果 

5.PageObject

操作的封装及测试结果统计 
测试用例模块分级 

6.其他

../Report       =====测试报告 
../Runner       =====执行文件 
../TestCase     =====测试用例集 
../yamls        =====用例管理

 

Airtest

Airtest的简介

  Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言SikuliSikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。
  另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。

环境的搭建

1.AirtestIDE的下载
AirtestIDE已经帮你集成了所有的环境,自带录制脚本栏,自动生成脚本,自带编辑器还自带模拟器,有了一个AirtestIDE就可以轻松简单的录制脚本了。下载地址是Airtest的官网:

http://airtest.netease.com/

AirtestIDE的使用教程跟文档也在下面的连接中:

http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html

 

报告形式

 

App自动化选型方案_第2张图片

App自动化选型方案_第3张图片

总结

1Appiumairtest都可以满足现有需求,且都具有扩展性;

2Appium学习成本高,但较为灵活;Airtest学习成本低,推行快,但具有一定局限性,但因其基于python编写,且提供对外api,可定制化需求,提高了灵活性;

3,建议,使用AIrtest

你可能感兴趣的:(自动化测试)