51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 221|回复: 0
打印 上一主题 下一主题

[资料] APP 自动化测试:从入门到 Jenkins 集成全攻略

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2024-10-31 10:40:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一、开发语言的抉择
    在自动化测试领域,可用于编写自动化脚本的编程语言多种多样,像 Python、Java、Javascript、Ruby、C#、PHP 等都是常见的选择。对于有编程基础的人而言,往往会选用自己熟悉的语言。然而,对于那些零基础开始学习自动化测试(或者是专注于自动化测试方向)的朋友,Python 是值得推荐的。


    Python 在自动化测试方面有着独特的优势。对于初学者来说,它的语法简洁明了,代码可读性强,学习门槛较低。而且,Python 拥有大量功能强大的第三方库,这极大地提高了编写脚本的效率。此外,Python 中的 Pytest 自动化测试框架在当前非常流行,为自动化测试提供了便捷且高效的解决方案。


    二、测试框架的选择
    在确定了开发语言后,就需要挑选合适的 UI 测试框架了。当前,在 APP UI 自动化测试中,Appium 和 Airtest 是使用较多的主流框架。


    1. Appium
        - 它处于持续维护状态且是开源的。Appium server 能够在 Windows、macOS、Linux 等多种操作系统上运行。
        - 支持多种主流编程语言,包括 Python、Java、Javascript、Ruby 等。
        - 可以对 Android、ios、H5 进行自动化测试,这是因为它集成了 UiAutomator、UiAutomation 等框架。不过,它的环境搭建过程相对复杂。


    2. Airtest
        - 由网易开发(可查看官方文档),仅支持 Python 语言。
        - 提供了集成 Airtest 与 Poco 两个测试框架的功能强大的 IDE,对新手极为友好。其集成的基于图像识别的 UI 自动化测试框架 airtest,让不懂代码的人也能编写自动化脚本。
        - 具有跨平台的特性,能够对 Windows、Android 和 iOS 应用软件进行自动化测试,在游戏测试方面表现出色。Airtest 与 Poco 本质上是 Python 的两个第三方库,测试环境搭建比 Appium 简单。


    3. 框架选择建议
        - 在以下几种情况下,可以优先考虑网易的 Airtest(可访问 Airtest 官网):如果没有编程基础、进行游戏测试或者测试场景较为单一(因为 Appium 在这种情况下相对复杂),以及进行支付宝小程序自动化测试(博主目前使用 Airtest 集成的 Poco 框架做支付宝小程序自动化测试)。
        - 在以下情况则建议选择 Appium:测试场景比较复杂(例如需要多台手机批量测试)或者测试脚本语言不是 Python(因为 Airtest 只支持 Python)。


    三、单元测试框架的选择
    单元测试框架与 UI 测试框架有所不同,它主要用于加载测试用例、执行测试、进行断言以及输出测试结果等操作。不同的开发语言都有各自对应的单元测试框架,比如 Java 有 JUnit、TestNG、Robot 等,Python 有 unittest、pytest 等。由于博主主要使用 Python 进行自动化测试,这里重点介绍 Python 的单元测试框架。


    Python 主流的单元测试框架包括:
    - unittest:这是 Python 自带的单元测试框架。
    - pytest:它是基于 unittest 开发的,易用性好,提供的信息更详细,并且有众多插件。
    - robot framework:这是基于 Python 的关键字驱动测试框架,有界面,自带报告及 log,功能完善且呈现清晰美观。


    在这里强烈推荐使用 pytest,它功能强大且容易上手,官方文档是英文的,不过有中文参考资料(如《Pytest 使用手册》)。


    四、测试环境搭建
    1. 测试电脑的选择
    如果条件允许,建议使用 Mac 机器专门用于 UI 自动化测试,因为 ios app ui 自动化只能在 Mac 上进行。


    2. 测试手机的选择
    在刚开始调试测试脚本时,可以使用模拟器。Android 模拟器可以选择 Gernymotion、夜神模拟器等。当整个测试项目开发完成后,建议使用真机运行自动化脚本,这样能更贴近真实的用户使用场景。


    3. 开发语言环境
    建议安装 python 3 及以上版本,因为官方已经停止对 python2 版本的更新维护。


    4. UI 自动化测试框架环境搭建
    在 windows 环境下搭建 Appium 可参考相关的 appium 环境搭建教程,在 Mac 下搭建 Appium 会稍微复杂一些,后续会分享相关内容。如果选择 Airtest 框架,则参考其官网的搭建指南。


    五、脚本编写
    1. 编写测试 demo
    为了确认整个测试环境是否搭建成功以及能否正常运行测试用例,一般需要先编写简单的测试脚本并执行。如果测试脚本能够成功运行,就表明整个环境搭建是成功的。


    2. 确定目录结构
    推荐使用 Page Object 设计模式来开发 APP UI 自动化测试项目。


    3. 选择测试报告
    不同的开发语言和单元测试框架可以选用不同的测试报告。在 Python 中,unittest 框架可以使用 HTMLTestRunner 或 BSTestrunner 生成测试报告,Pytest 框架则使用 pytest - html 生成报告或者通过 allure 定制测试报告。完成以上步骤后,就可以继续向测试项目中添加新的测试用例了。


    六、Jenkins 集成
    当依据上述步骤完成整个 app UI 自动化测试项目的编写,并且运行一段时间后稳定了,就可以考虑与 Jenkins 进行集成。


    七、总结


    APP UI 自动化可以通过以下几种方式实现:
    - python + appium + unittest + HTMLTestRunner
    - python + appium + pytest + pytest - html / allure
    - python + Airtest(AirtestIDE)
    - python + Poco + pytest + pytest - html / allure


    可以根据实际情况自行选择合适的方案。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 00:54 , Processed in 0.061551 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表