diffy-website / diffy-cli
Diffy CLI 工具。
Requires
- php: ^8.0
- ext-json: *
- consolidation/robo: ^4
- diffywebsite/diffy-php: ^1
- guzzlehttp/guzzle: ^7
- n98/junit-xml: ^1.1
- symfony/yaml: ^6.4
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-11 19:41:06 UTC
README
Diffy 交互命令行工具。
非常适合构建 CI/CD 工具的集成。允许抓取截图、比较差异、对比环境。
使用方法
手动安装
从 https://github.com/DiffyWebsite/diffy-cli/releases 页面下载最新版本。只需下载 diffy.phar
文件。无需所有源代码。您可以将其复制到可执行文件,使其在任何地方都可用。
wget -O /usr/local/bin/diffy https://github.com/diffywebsite/diffy-cli/releases/latest/download/diffy.phar chmod a+x /usr/local/bin/diffy
使用 Composer 安装
composer require diffy-website/diffy-cli --with-all-dependencies
身份验证
您需要获取一个密钥来与 API 交互。您可以从 个人资料 获取。
一旦您有了密钥,请运行
diffy auth:login xxxxxxxxxxxx
这将保存密钥以供将来使用。
命令
抓取截图
diffy screenshot:create PROJECT_ID ENVIRONMENT
PROJECT_ID 是项目的 ID。您可以从项目的 URL 中获取它。ENVIRONMENT 是 "production"、"staging"、"development" 之一(简写选项:"prod"、"stage"、"dev")
您可以使用 --wait
关键字等待截图完成。
结果您将得到截图的 ID。
diffy diff:create PROJECT_ID SCREENSHOT_ID1 SCREENSHOT_ID2
此外,您还可以创建具有自定义名称的差异
diffy diff:create PROJECT_ID SCREENSHOT_ID1 SCREENSHOT_ID2 --name="custom"
比较具有 ID SCREENSHOT_ID1 和 SCREENSHOT_ID2 的截图
diffy project:compare PROJECT_ID production staging
或与基线比较
diffy project:compare PROJECT_ID baseline staging
或针对自定义环境(也将差异的名称设置为 "custom")
diffy project:compare PROJECT_ID prod custom --env2Url="https://custom.example.com" --name="custom"
或针对具有基本身份验证凭据的自定义环境
diffy project:compare PROJECT_ID prod custom --env2Url="https://custom.example.com" --env2User="user" --env2Pass="password"
或使用现有的截图
diffy project:compare PROJECT_ID existing existing --screenshot1=100 --screenshot2=101
允许的环境是:prod、stage、dev、custom(长选项:production、staging、development)。
更新项目
如果您想更新您的配置(例如,从 CI/CD)
diffy project:update PROJECT_ID ./examples/diffy_update_project.json
查看 ./examples/diffy_update_project.json 或 ./examples/diffy-project-projectID-demo-test-project.yaml 文件,了解有效的配置文件。
对于多个项目
diffy projects:update ./examples/diffy_update_projects.json
PROJECT_ID 由 JSON 对象中的键定义。
创建项目
类似地,您可以通过传递配置文件来创建项目。
diffy project:create ./examples/diffy_create_project.json
您可以通过提供项目数组来创建多个项目。
获取项目信息
获取项目的完整设置
diffy project:get PROJECT_ID
获取差异列表
diffy diff:list PROJECT_ID PAGE_NUMBER
PROJECT_ID 是项目的 ID。您可以从项目的 URL 中获取它。PAGE_NUMBER 是页面结果的数量(从 0 开始)
基线
有两个命令可用于处理基线集。
diffy screenshot:create-baseline PROJECT_ID ENVIRONMENT --wait # will create set of screenshots and set them as baseline right away diffy screenshot:set-baseline PROJECT_ID SCREENSHOT_ID # set screenshots SCREENSHOT_ID as a baseline
从图像创建截图
diffy screenshot:create-uploaded 342 ./examples/diffy_create_screenshot_upload.json
GitHub 集成
主要文档页面 http://diffy.website/documentation/github-integration
您唯一需要更改的是在比较操作中传递提交 SHA。
diffy project:compare PROJECT_ID prod custom --env2Url="https://custom.example.com" --commit-sha="29b872765b21387b7adfd67fd16b7f11942e1a56"
BrowserStack 集成
如果您有 Automate Pro 计划或更高版本,我们可以使用 Screenshot API 来生成截图并发送到 Diffy。
为此,您需要以下步骤。
保存凭据。它们可以在 账户设置页面 获取。
php diffy browserstack:save-credentials <username> <access_key>
获取所有可能的浏览器列表,选择您想使用的浏览器。
php diffy browserstack:browsers-list
运行抓取截图的过程
php diffy browserstack:screenshot PROJECT_ID http://url-of-the-site.com safari--6.0--OS__X--Lion,firefox--39.0--Windows--8 --wait=10
LambdaTest 集成
如果您有 Live 计划或更高版本,我们可以使用 Screenshot API 来生成截图并发送到 Diffy。
为此,您需要以下步骤。
首先您需要保存凭据。您可以在账户设置页面获取凭据。您需要输入用户名和访问令牌。
php diffy lambdatest:save-credentials <username> <access_token>
获取所有可能的浏览器列表,选择您想使用的浏览器。
php diffy lambdatest:browsers-list
运行抓取截图的过程
php diffy lambdatest:screenshot PROJECT_ID http://url-of-the-site.com --wait=10 windows__10--opera--75,windows__10--chrome--90
一旦作业完成,您可以在项目中看到出现的截图集。
示例
查看示例文件夹。这是一个包含Shell脚本的集合,旨在向您展示CLI工具如何在您的CI管道中使用。
开发
先决条件
列出安装软件所需的物品以及如何安装它们。对于大多数PHP项目,通常只需要运行
composer install
如果您想为该项目构建phar,可以通过以下方式安装box
phar构建器:
composer phar:install-tools
安装
提供一系列步骤示例,展示如何安装此项目。
说明步骤将是什么。如果此项目的phar是主要输出,而不是仅作为开发工具,那么第一步可能是构建phar
composer phar:build
然后可能可以通过以下方式安装
cp example.phar /usr/local/bin
最后以从系统中获取一些数据或进行简单演示为例。
运行测试
可以通过简单的composer脚本在本地运行测试套件。
部署
添加有关如何在实际系统上部署此项目的额外说明。
如果您的项目已配置为在每次GitHub发布时自动部署其.phar,则可以通过以下程序进行部署
- 编辑
VERSION
文件以包含要发布的版本,并提交更改。 - 运行
composer release
构建工具
列出该项目开发人员将与之交互的重大依赖项。
贡献
请阅读CONTRIBUTING.md以了解提交拉取请求给我们的详细流程。
版本控制
我们使用SemVer进行版本控制。有关可用版本,请参阅发布页面。
作者
- Yuriy Gerasimov - 从模板创建项目。
另请参阅参与此项目的贡献者名单。
许可协议
本项目采用MIT许可协议 - 请参阅LICENSE文件以获取详细信息。