经与app业务端测试人员沟通,需求为:
a,脚本,跨平台(ios,android,微信小程序--后续),跨应用;
b,稳定
c,支持多设备并行测试
下列框架,支持业务端需求,仅有appium和airtest,故目的为,再appium和airtest中选定
Appium |
Airtest |
solor |
Robotium |
Instrumentation |
UIAutomator |
Appium是一个开源的、跨平台的自动化测试工具,支持IOS、Android和FirefoxOS平台。 |
1,基于图像识别和UI控件识别,操作简单,学习成本低; |
略 |
略 |
略 |
略 |
1,环境搭建难,学习成本高,框架调试时间长; |
1,控件定位不够准确; |
1,应用程序,使用需重复录制 |
不能处理flash和web组件,不支持iOS设备 |
不支持跨应用 |
关键功能仅支持java |
APPIUM
Appium架构
Appium是一个用Node.js编写的HTTP服务器,它创建,并管理多个WebDriver会话来和不同平台交互,如iOS,Android等等。
Appium开始一个测试后,就会在被测设备(手机)上启动一个服务器,监听来自Appium server的指令。每种平台像iOS和Android都有不同的运行,和交互方式。所以Appium会用某个桩程序“侵入”该平台,并接受指令,来完成测试用例的运行。
首先需要准备
1)jdk(步骤不再啰嗦)
2)android SDK,下载地址:http://developer.android.com/sdk/index.html,下载sdk工具,可能需要FQ,提供一个国内下载地址:http://www.androiddevtools.cn/
3)appium,下载地址:http://appium.io/
4)nodejs,下载地址:https://nodejs.org/en/
5)python,下载地址:https://www.python.org/ ,下载3.X的版本。
上述软件都准备好后,则进入搭建步骤。
安装,配置
将上述软件依次安装。
1)android sdk安装完毕后,需要配置环境变量
新建ANDROID_HOME D:\ ProgramFiles(x86)\ Android \ android-sdk
在PATH中添加:%ANDROID_HOME%\平台工具;%ANDROID_HOME%\工具;
2)nodejs安装完毕后,需要配置环境变量
在PATH中添加:D:\ Program Files \ nodejs;
3)appium安装完毕后,需要配置环境变量
D:\ Program Files(x86)\ Appium \ node_modules \ .bin;
4)配置好后,启动cmd,
输入节点-v,查看节点安装版本
输入appium,医生检查appium的安装环境是否成功,如下图:
5)安装Python,配置环境变量,如C:\ Python27,检查是否设置成功
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是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是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
报告形式
1,Appium和airtest都可以满足现有需求,且都具有扩展性;
2,Appium学习成本高,但较为灵活;Airtest学习成本低,推行快,但具有一定局限性,但因其基于python编写,且提供对外api,可定制化需求,提高了灵活性;
3,建议,使用AIrtest