几个超好用的手机开源自动化测试工具分享
随着消费者对移动应用使用的占比增加, APP测试越来越被重视! 在现已出现的开源移动自动化测试工具中,总结了几个最实用的,希望对大家有帮助:
1)Calabash(适用于Android和iOS)
Calabash-android是支持android的UI自动化测试框架,PC端使用了cucumber框架,通过http和json与模拟器和真机上安装的测试apk通信,测试apk调用robotium的方法来进行UI自动化测试,支持webview操作。
Calabash-android 是支持 android 的 UI 自动化测试框架,PC 端使用了 cucumber 框架,通过 http 和 json 与模拟器和真机上安装的测试 apk 通信,测试 apk 调用 Robotium 的方法来进行 UI 自动化测试,支持 webview 操作, 依靠Ruby代码的支持.
Calabash-android 架构图
Features —— 这里的 feature 就是 cucumber 的 feature,用来描述 user stories 。
Step Definitions —— Calabash Android 事先已经定义了一些通用的 step。你可以根据自己的需求,定义更加复杂的步骤。
Your app —— 测试之前,你不必对你的应用修改。(这里其实是有问题,后面我们会说到。)
Instrumentation Test Server —— 这是一个应用,在运行测试的时候会被安装到设备中去。 这个应用是基于 Android SDK 里的 ActivityInstrumentationTestCase2。它是 Calabash Android 框架的一部分。Robotium 就集成在这个应用里.
2)Appium(Android和iOS)
1、Appium 是什么?
Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的自动化测试工具,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用。
2、Appium的特点:
支持多平台(Android、iOS等)
支持多语言(python、java、ruby、js、c#等)
Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。
Appium选择了Client/Server的设计模式。只要client能够发送http请求给server,client用什么语言来实现都是可以的,这就是如何做到支持多语言的原因;
Appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量。
3、Appium的哲学:
不需要重新编译或者修改应用
不被一种语言或者框架约束
不重复造轮子
开源免费
Appium测试相当于黑盒测试。这个测试框架,一般用于测试UI逻辑的正确性,不能升入测试业务逻辑流程。
3)Robotium(Android )
Robotium是Android平台上类似于selenium的开源自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。有JUnit基础的开发者,还是非常容易上手的。
Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium的核心类是Solo,通过Solo可以对控件进行各种操作. Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
最明显的缺点有两个,一是必须要和被测系统签名保持一致,二是不能做任何跨进程的操作。
robotium 是 android 自带类 Instrumentation 的一个封装,方便测试人员直接调用封装好的接口,也就是说,实际上我们直接使用Instrumentation 也能够进行自动化测试,但robotium可以简化我们的测试步骤,我们只需要调用某个robotium的API,传几个参数,就等于我们在调用一部分的Instrumentation帮我们实现测试。
4)Frank(iOS)
Frank 提供了针对iOS平台的功能测试能力,可以模拟用户的操作对应用程序进行黑盒测试,并且使用Cucumber编写测试用例,使测试用例如同自然语言一样描述功能需求,让测试以“可执行的文档”的形式成为业务客户与交付团队之间的桥梁。
Frank 是 iOS 开发环境下一款实现自动测试的工具,Xcode 环境下开发完成后,通过 Frank 实现结构化的测试用例,其底层语言为 Ruby,作为一款开源的 iOS 测试工具,在国外已经有广泛的应用。但是国内相关资料却比较少。其最大的优点是允许我们用熟悉的自然语言实现实际的操作逻辑。
它提供了针对 iOS 平台的功能测试能力,可以模拟用户的操作对应用程序进行黑盒测试,并且使用 Cucumber 编写测试用例,使测试用例如同自然语言一样描述功能需求,让测试以“可执行的文档”的形式成为业务客户与交付团队之间的桥梁。
优点: 测试场景是在 Cucumber 的帮助下,用可理解的英语句子写的,还有活跃的社区支持,以及不断扩大中的库。
缺点:对手势的支持有限,所以在设备上运行测试有点难。
5)UiAutomator(Android)
uiautomator是Android官方推出的安卓应用界面自动化测试工具,是理想的针对APK进行自动化功能回归测试的利器。能够根据文本、控件id、坐标进行点击、长按、滑动、查找等操作,实现与人一致的手动操作逻辑,根据测试用例使用python编码后根据指定命令操作,检查预期结果,进行测试。最终通过单元测试执行用例脚本生成相应报告
一、Uiautomator简介
Android SDK提供下述工具来支持自动化的功能界面测试:
1、uiautomatorviewer:扫描、分析待测应用的UI组件的图像工具。
2、uiautomator:包含创建定制功能界面测试API和自动化运行测试用例的引擎的JAVA类库。
优点:可以对所有操作进行自动化,操作简单;
缺点:Android版本需要高于4.0。
二、Uiautomator常用API了解
以下是uiautomator最基本最常用到的三个类,这里只是简单地介绍这三个类的作用,后续本人还会写相关随笔详细说明。
1、UiDevice:用于获取设备的各种状态。
获取设备信息:屏幕分辨率、选装状态、亮灭屏......
操作:按键、坐标操作、滑动、拖拽、截图......
监听器功能
2、UiSelector:通过组件的各种属性与节点关系定位组件。
涉及到的android基础:Android常用组件、Android组件的属性
3、UiObject:代表一个组件对象,对象有许多模拟实际操作手机的方法和属性。
文本的编辑, 手势操作, 获取子类,判断对象是否存在
6)Katalon
KatalonStudio是一个能提供一整套功能来实现Web,API和Mobile的全自动测试解决方案的自动化测试平台。
KatalonStudio构建于开源Selenium和Appium框架之上,通过减少学习和集成这些框架以满足。
自动化测试需求所需的工作量和专业知识,使团队能够快速开始测试自动化。
Katalonstudio是一个非常好的工具,特别是对于那些有最少编程或开发背景的人。
如果你问我,在没有开发背景的情况下如何开始自动化测试。那么,使用像 Katalon studio 这样的工具是一个很好的开始。
更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。