alex-moreno/glitcherbot

轻松实现视觉回归测试

0.5-beta 2021-01-30 20:18 UTC

This package is auto-updated.

Last update: 2024-09-07 23:05:12 UTC


README

自动化无聊的事情。

管理一个网站可能会很困难。你可能会拥有数百个页面,并且在事件(如部署、流量高峰、编辑变更、广告或行为不良的javascripts)之后确保所有页面都功能正常是一项挑战...创建软件和维护网站和应用程序是困难的...回归测试不应该。

在开始之前,克隆/分叉此存储库并进入文件夹。使用此工具有两种方式:使用 VagrantDocker

Vagrant

下载并安装 Vagrant

要求

  • PHP 7.0
  • Sqlite
  • 一个(可能很大的)待爬取URL列表。自动检测Robots.txt和Sitemaps

安装

  1. 下载并解压包
curl -L -# -C - -O "https://github.com/alex-moreno/glitcherbot/archive/main.zip"
unzip main.zip
cd glitcherbot-main
  1. 运行: composer install

  2. 复制你的config.php

cp config.sample.php config.php

使用

创建一个包含要迭代的URL列表的.csv文件(见example.csv)。

如果你使用Acquia Site Factory,提供了一条命令来从sites.json文件生成站点列表。你需要

  1. 下载Acquia Cloud订阅中的sites.json

scp [subscription][ENV].[ENV]@[subscription][ENV].ssh.enterprise-g1.acquia-sites.com:/mnt/files/[subscription][ENV]/files-private/sites.json ./sites-dev.json

  1. 如果你想在使用虚拟机内的爬虫(推荐)。

  2. 对那个json运行爬取

php bin/visual_regression_bot.php acquia:acsf-crawl-sites sites.json

通过运行

php bin/visual_regression_bot.php

使用

php bin/visual_regression_bot.php help <command>

在调试时,通过添加多个 -v 标志来增加详细程度。

-v : 详细 -vv : 非常详细 -vvv : 调试

配置

您可以配置一些设置,例如您将发送到站点的标头或您想要使用的并发性。

将config.sample.php移动到config.php并适应您的需求。例如

<?php

return [
  'headers' => [
    'User-Agent'   => 'GlitcherBotScrapper/0.1',
    'Accept'       => 'application/json',
  ],
  'http_errors' => false,
  'connect_timeout' => 0, // wait forever
  'read_timeout' => 0,
  'timeout' => 0, // wait forever
  'concurrency' => 60,
];

注意:配置的并发性越高,每个步骤上运行的站点就越多,但请注意,php运行速度快(与普遍看法相反),它可能会向站点发送高负载并将其置于困境。大功率意味着更大的责任。

独立工具

要作为独立界面运行回归工具,您需要将您的web服务器指向存储库中的html/目录。

PHP Web服务器

已包含一个composer脚本来帮助测试此工具。要运行此命令,请使用以下命令。

composer start

然后在浏览器中导航到以下地址。

http://0.0.0.0:8000/

Docker

已包含一个Docker设置来帮助运行工具。

下载并安装 Docker

启动Docker容器

此命令将启动容器

make up

构建工具(只需运行一次)

此命令将检查是否存在配置文件,如果需要则创建一个。然后它将安装所有Composer依赖项。

make build

爬取

默认情况下,此命令将使用sample-sites.csv作为爬取URL的来源。

make crawl

要使用不同文件运行命令,请使用以下语法

make crawl SITES_CSV=路径_to_sites_csv

或对于Acquia json文件

使用 crawl-acquia,设置 SITES_JSON=sitesd8-prod.json

请注意,爬取操作在容器内运行,因此 path_to_sites_csv 需要是相对于容器的路径。

Web 界面

在浏览器中打开工具。

make open

停止容器

make stop

链式命令。

您可以一次性运行所有命令,例如以下命令将启动容器、构建、爬取并打开浏览器。

make up build crawl open

参数

--include_sitemaps=yes

这将包括网站中所有从 robots.txt 引用的 sitemap。

--force_sitemaps=yes

使用 makefile 和 Docker

make crawl SITES_CSV=sample-sites.csv INCLUDE_SITEMAPS=yes

make crawl SITES_CSV=sample-sites.csv FORCE_SITEMAPS=yes