diffy-website/diffy-cli

Diffy CLI 工具。

0.1.38 2024-06-11 19:06 UTC

README

Diffy 交互命令行工具。

非常适合构建 CI/CD 工具的集成。允许抓取截图、比较差异、对比环境。

Travis CI License

使用方法

手动安装

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文件以获取详细信息。