当前位置: 首页 > news >正文

Shot配置指南:Gradle插件集成与测试环境搭建完全手册

Shot配置指南:Gradle插件集成与测试环境搭建完全手册

【免费下载链接】ShotScreenshot testing library for Android项目地址: https://gitcode.com/gh_mirrors/sh/Shot

Shot是一款功能强大的Android截图测试库,能够帮助开发者轻松实现UI自动化测试,确保应用界面在不同版本迭代中保持一致性。本指南将带你完成从环境准备到插件配置的全过程,让你快速掌握Shot的核心使用方法。

环境准备:从零开始搭建测试环境

在集成Shot之前,需要确保开发环境满足以下要求:

  • Android Studio 4.0+
  • Gradle 6.0+
  • JDK 8+
  • Android SDK 21+

首先,克隆Shot项目代码库到本地:

git clone https://gitcode.com/gh_mirrors/sh/Shot

Gradle插件集成:三步完成基础配置

第一步:添加插件依赖

在项目根目录的build.gradle文件中添加Shot插件仓库:

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.karumi:shot:5.14.0' } }

第二步:应用Shot插件

在应用模块的build.gradle文件中应用Shot插件,以shot-consumer/app/build.gradle为例:

apply plugin: "com.android.application" apply plugin: "kotlin-android" apply plugin: "shot"

第三步:基本配置项设置

在应用模块的build.gradle中添加Shot配置块,设置关键参数:

shot { useComposer = true showOnlyFailingTestsInReports = true tolerance = 0.5 // 容错率设置为0.5% }

高级配置:定制你的测试需求

配置参数详解

Shot提供了多种可配置参数,以满足不同测试场景的需求:

参数名类型描述默认值
useComposerBoolean是否使用Composer运行测试false
showOnlyFailingTestsInReportsBoolean报告中仅显示失败的测试false
toleranceDouble截图对比容错率(百分比)0.0
executionTimeoutInt测试执行超时时间(秒)600

多模块项目配置

对于多模块项目,可以在每个需要截图测试的模块中单独配置Shot,例如shot-consumer/samplelibrary/build.gradle

apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'shot' shot { // 库模块特定配置 tolerance = 1.0 }

测试执行:记录与验证截图

配置运行参数

在Android Studio中配置Shot测试运行参数,设置任务名称和必要参数:

Shot测试运行配置界面,展示了如何设置执行任务和参数

记录基准截图

执行以下命令记录基准截图:

./gradlew executeScreenshotTests -Precord

记录过程中,Shot会自动在设备或模拟器上运行测试并捕获截图,生成的报告如下:

Shot记录报告展示了11个截图测试用例的记录结果

验证截图变化

执行以下命令验证当前截图与基准截图的一致性:

./gradlew executeScreenshotTests

验证过程会生成详细的对比报告,标记通过和失败的测试用例:

Shot验证报告展示了测试结果和截图对比,包括通过和失败的用例

测试过程可视化

Shot提供了直观的测试过程可视化,让你可以清晰地看到测试执行情况:

记录过程

Shot记录截图过程的实时展示,显示了Gradle任务执行和设备操作

验证过程

Shot验证截图过程的实时展示,显示了测试执行和结果比对

常见问题解决

截图不一致问题

如果遇到截图不一致的情况,可以尝试以下解决方案:

  1. 调整tolerance参数,适当提高容错率
  2. 确保测试设备或模拟器的分辨率和DPI一致
  3. 禁用设备动画,可使用项目中的脚本:shot-consumer/scripts/disable_animations.sh

测试执行超时

若测试经常超时,可以增加executionTimeout配置:

shot { executionTimeout = 900 // 设置为15分钟 }

项目结构与资源

Shot项目包含多个模块,核心功能位于以下路径:

  • 插件实现:shot/src/main/scala/com/karumi/shot/ShotPlugin.scala
  • 核心逻辑:core/src/main/scala/com/karumi/shot/
  • Android相关代码:shot-android/src/main/java/com/karumi/shot/

通过本指南,你已经掌握了Shot的基本配置和使用方法。开始在你的项目中集成Shot,提升UI测试效率,确保应用界面的一致性吧!

【免费下载链接】ShotScreenshot testing library for Android项目地址: https://gitcode.com/gh_mirrors/sh/Shot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/467849/

相关文章:

  • Z-Image-Turbo历史图片管理:output_image路径查看与删除命令详解
  • HidHide未来roadmap:即将推出的5大新功能预览
  • ProtocolLib源码解析:深入理解Minecraft协议交互的底层实现
  • 开源项目pslab-mini-hardware深度评测:优势、局限与商业应用场景
  • 提升Electron应用下载体验:electron-dl高级配置与最佳实践
  • android-test最新版本特性解析:2023年开发者不容错过的更新
  • IPED工作流自动化工具:使用Python脚本控制取证流程
  • 如何在Electron应用中集成electron-dl?3分钟快速上手教程
  • AIGlasses_for_navigation惊艳案例:5秒内完成‘找AD钙奶’指令到语音反馈闭环
  • Ranger vs AdamW:12项FastAI榜单纪录背后的优化器之争
  • 如何使用find-you项目:从零开始构建你的隐形追踪设备
  • 解决Eufy Security摄像头RTSP与P2P流媒体问题:完整配置指南
  • Bidili Generator高性能:支持batch_size=2并行生成,吞吐量提升1.8倍
  • Go-doudou代码生成器使用指南:提升开发效率的10个技巧
  • 开源AI语音趋势:CAM++弹性计算部署实战指南
  • gh_mirrors/ga/game-server脚本系统全攻略:从基础使用到自定义扩展
  • yap 与其他工具联动:打造从转录到翻译、总结的全流程工作流
  • 等保2.0三级安全基线全栈落地指南:CentOS/麒麟/UOS 多系统适配(保姆式脚本版)
  • FSMN VAD适合教育场景吗?课堂录音分析实战案例
  • HidHide配置教程:如何白名单应用与黑名单设备完全指南
  • React-Menu迁移指南:从v2到v4的平滑过渡技巧
  • 「玩透ESA」WordPress 全站缓存接入 阿里云 ESA食用教程
  • Open-AutoGLM上下文理解能力:长流程任务执行评测
  • db.py常见问题解答:新手必知的10个问题
  • 在 Run 模式下Console有 JavaScript 错误导致click()事件失效
  • 5分钟上手HTML5 Audio Visualizer:快速打造你的音乐可视化项目
  • HyperDown:SegmentFault打造的终极PHP Markdown解析器,解决开源库痛点
  • electron-devtools-installer源码解析:TypeScript实现与架构设计
  • 2026北京房产继承纠纷应对指南:民商诉讼专业律所精选 - 品牌2026
  • autoprefixer-rails安全最佳实践:保护你的Rails应用免受潜在威胁