• 超好用的手机开源自动化测试工具分享


    随着消费者对移动应用使用的占比增加, APP测试越来越被重视! 在现已出现的开源移动自动化测试工具中,总结了几个最实用的,希望对大家有帮助:

    一、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 架构图

    在这里插入图片描述
    1、Features

    这里的 feature 就是 cucumber 的 feature,用来描述 user stories 。

    2、Step Definitions

    Calabash Android 事先已经定义了一些通用的 step。你可以根据自己的需求,定义更加复杂的步骤。

    3、Your app

    测试之前,你不必对你的应用修改。(这里其实是有问题,后面我们会说到。)

    Instrumentation Test Server —— 这是一个应用,在运行测试的时候会被安装到设备中去。这个应用是基于 Android SDK 里的 ActivityInstrumentationTestCase2。它是 Calabash Android 框架的一部分。Robotium 就集成在这个应用里.

    二、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逻辑的正确性,不能升入测试业务逻辑流程。

    三、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帮我们实现测试。

    四、Frank(iOS)

    Frank 提供了针对iOS平台的功能测试能力,可以模拟用户的操作对应用程序进行黑盒测试,并且使用Cucumber编写测试用例,使测试用例如同自然语言一样描述功能需求,让测试以“可执行的文档”的形式成为业务客户与交付团队之间的桥梁。

    Frank 是 iOS 开发环境下一款实现自动测试的工具,Xcode 环境下开发完成后,通过 Frank 实现结构化的测试用例,其底层语言为 Ruby,作为一款开源的 iOS 测试工具,在国外已经有广泛的应用。但是国内相关资料却比较少。其最大的优点是允许我们用熟悉的自然语言实现实际的操作逻辑。

    它提供了针对 iOS 平台的功能测试能力,可以模拟用户的操作对应用程序进行黑盒测试,并且使用 Cucumber 编写测试用例,使测试用例如同自然语言一样描述功能需求,让测试以“可执行的文档”的形式成为业务客户与交付团队之间的桥梁。

    优点:

    测试场景是在 Cucumber 的帮助下,用可理解的英语句子写的,还有活跃的社区支持,以及不断扩大中的库。

    缺点:

    对手势的支持有限,所以在设备上运行测试有点难。

    五、UIAutomator(Android)

    uiautomator是Android官方推出的安卓应用界面自动化测试工具,是理想的针对APK进行自动化功能回归测试的利器。能够根据文本、控件id、坐标进行点击、长按、滑动、查找等操作,实现与人一致的手动操作逻辑,根据测试用例使用python编码后根据指定命令操作,检查预期结果,进行测试。最终通过单元测试执行用例脚本生成相应报告

    Android SDK提供下述工具来支持自动化的功能界面测试:

    1、uiautomatorviewer:

    扫描、分析待测应用的UI组件的图像工具。

    2、uiautomator:

    包含创建定制功能界面测试API和自动化运行测试用例的引擎的JAVA类库。

    3、Uiautomator常用API了解

    以下是uiautomator最基本最常用到的三个类,这里只是简单地介绍这三个类的作用,后续本人还会写相关随笔详细说明。

    1)UiDevice:

    用于获取设备的各种状态。

    获取设备信息:屏幕分辨率、选装状态、亮灭屏…

    操作:按键、坐标操作、滑动、拖拽、截图…

    监听器功能

    2)UiSelector:

    通过组件的各种属性与节点关系定位组件。

    涉及到的android基础:Android常用组件、Android组件的属性

    3)UiObject:

    代表一个组件对象,对象有许多模拟实际操作手机的方法和属性。

    文本的编辑, 手势操作, 获取子类,判断对象是否存在

    六、Katalon

    KatalonStudio是一个能提供一整套功能来实现Web,API和Mobile的全自动测试解决方案的自动化测试平台。

    KatalonStudio构建于开源Selenium和Appium框架之上,通过减少学习和集成这些框架以满足。

    自动化测试需求所需的工作量和专业知识,使团队能够快速开始测试自动化。

    Katalonstudio是一个非常好的工具,特别是对于那些有最少编程或开发背景的人。

    如果你问我,在没有开发背景的情况下如何开始自动化测试。那么,使用像 Katalon studio 这样的工具是一个很好的开始。

    最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

    在这里插入图片描述

    这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

    如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

    敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

    自学推荐B站视频:

    零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

    自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

    在这里插入图片描述

  • 相关阅读:
    最新版web漏洞扫描工具AppScan\AWVS\Xray安装及使用教程
    uni-app 之 vue位置怎样设置
    哪种App开发模式适合中小企业?
    【附源码】计算机毕业设计JAVA助农脱贫系统
    第五章:最新版零基础学习 PYTHON 教程—Python 字符串操作指南(第二节 - Python 字符串—Python 字符串 len()的语法)
    分组后再子集再查询
    Java学习笔记 --- 异常处理
    樱花(筛素数+约数)
    测试自动化的边缘:DevTestOps 和 DevSecOps
    LeetCode栈和队列练习
  • 原文地址:https://blog.csdn.net/weixin_57794111/article/details/126319332