1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-accelerated-mobile-pages

Клонировать/Скачать
testing.md 57 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 06:24 e035f8c

Тестирование в AMP HTML

Данный документ содержит подробную информацию о тестировании и сборке вашего кода AMP.

Содержание- Тестовые команды

Перед выполнением этих команд убедитесь, что у вас установлен Node.js. Для получения инструкций обратитесь к разделу One-time setup в руководстве по быстрому началу работы.Професиональный совет: Чтобы увидеть полный список команд amp и их флагов, выполните команду amp --help. | Команда | Описание | | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | amp | Запускает сервер разработки, лениво компилирует JS-файлы и расширения при запросе и следит за изменениями. Используйте это для разработки. | | amp --extensions=amp-foo,amp-bar | То же, что и amp. Предварительно компилирует указанные расширения и лениво компилирует другие файлы при запросе. | | amp --extensions_from=examples/foo.amp.html | То же, что и amp. Предварительно компилирует расширения в указанном примерном файле и лениво компилирует другие файлы при запросе. | | amp --minified | То же, что и amp. Компилирует и обслуживает минифицированные бинарники. Может использоваться вместе с --extensions и --extensions_from. | | | amp --version_override=<version_override> | Запускает "watch" и "serve". Переопределяет версию, записанную в AMP_CONFIG. | | amp dist | Компилирует минифицированные AMP-бинарники и применяет AMP_CONFIG к файлам выполнения. |``` amp dist --watch

Собирает минифицированные AMP-бинарные файлы и следит за изменениями.```
amp dist --noconfig

Собирает минифицированные AMP-бинарные файлы без применения конфигурации AMP_CONFIG к файлам выполнения.

amp dist --extensions=amp-foo,amp-bar

Собирает минифицированные AMP-бинарные файлы, включая только указанные расширения.

amp dist --extensions_from=examples/foo.amp.html

Собирает минифицированные AMP-бинарные файлы, включая только расширения из указанных примеров.

amp dist --noextensions

Собирает минифицированные AMP-бинарные файлы без сборки каких-либо расширений.

amp dist --core_runtime_only

Собирает минифицированные AMP-бинарные файлы только для основного времени выполнения. Может быть объединен с --extensions и --extensions_from.``` amp dist --fortesting

Собирает минифицированные AMP-бинарные файлы для локального тестирования. (Позволяет использовать случаи, такие как рекламу, твиты и т. д., чтобы работать с минифицированными источниками. Переопределяет TESTING_HOST, если указан. По умолчанию использует производственное AMP_CONFIG.) | `amp dist --fortesting --config=<config>`                 | Создает минифицированные бинарные файлы AMP для локального тестирования с указанным `AMP_CONFIG`. `config` может быть `prod` или `canary`. (По умолчанию `prod`. )                                                                                                             |
| `amp dist --version_override=<version_override>`          | Создает минифицированные бинарные файлы AMP и переопределяет версию, записанную в AMP_CONFIG.                                                                                                                                                                        |
| `amp lint`                                                | Проверяет JS-файлы с помощью ESLint.                                                                                                                                                                                                            |
| `amp lint --watch`                                        | Наблюдает за изменениями в файлах и проверяет их с помощью ESLint.                                                                                                                                                                                   |
| `amp lint --fix`                                          | Автоматически исправляет простые предупреждения/ошибки линтера.                                                                                                                                                                                                         | | `amp lint --files=<files-path-glob>`                      | Проверяет только указанные файлы. Может использоваться вместе с `--fix`.                                                                                                                                                                                                 |
  | `amp lint --local_changes`                                | Проверяет только файлы, изменившиеся в локальной ветке. Может использоваться вместе с `--fix`.                                                                                                                                                                              |
  | `amp prettify`                                            | Проверяет не-JS-файлы с помощью Prettier.                                                                                                                                                                                                                                 |
 | Команда | Описание |
 | --- | --- |
 | `amp prettify --fix` | Автоматически исправляет простые ошибки форматирования. |
 | `amp prettify --files=<путь-к-файлам>` | Проверяет только указанные файлы. Может использоваться вместе с `--fix`. |
 | `amp prettify --local_changes` | Проверяет только файлы, изменившиеся в локальной ветке. Может использоваться вместе с `--fix`. |
 | `amp build` | Собирает незаминифицированные AMP-бинарники. |
 | `amp build --watch` | Собирает незаминифицированные AMP-бинарники и следит за ними на изменения. |
 | `amp build --extensions=amp-foo,amp-bar` | Собирает незаминифицированные AMP-бинарники, но только с указанными расширениями. |
 | `amp build --extensions_from=examples/foo.amp.html` | Собирает незаминифицированные AMP-бинарники, но только с расширениями, необходимыми для загрузки указанных примеров. |
 | `amp build --noextensions`                                | Строит незаминифицированные AMP-бинарники без расширений. |                                                                                                                                                                                                     |
  | `amp build --core_runtime_only`                           | Строит незаминифицированные AMP-бинарники только для основного времени выполнения.                                                                                                                                                                                                |
  | `amp build --fortesting`                                  | Строит незаминифицированные AMP-бинарники и устанавливает поле `test` в `AMP_CONFIG` на `true`.                                                                                                                                                                      |
  | `amp build --version_override=<version_override>`         | Строит незаминифицированные AMP-бинарники с указанной версией.                                                                                                                                                                                               |
  | `amp check-links --files=<files-path-glob>`               | Отчет о неработоспособных ссылках в файлах `.md`.                                                                                                                                                                                                                       |
  | `amp check-links --local_changes`                         | Отчет о неработоспособных ссылках в файлах `.md`, измененных в локальной ветке.                                                                                                                                                                                           |
  | `amp clean`                                               | Удаляет выходные данные сборки.                                                                                                                                                                                                                                    | | `amp css`                                                 | Перекомпилирует CSS в каталог сборки и строит встроенный CSS в JS-файлы для библиотеки AMP. ```
 | Команда `amp compile-jison`                               | Компилирует парсеры jison для расширений в директорию сборки.                                                                                                                                                                                                |
 | Команда `amp pr-check`                                    | Запускает все проверки CircleCI локально.                                                                                                                                                                                                                    |
 | Команда `amp pr-check --nobuild`                          | Запускает все проверки CircleCI локально, но пропускает шаг `amp build`.                                                                                                                                                                                    |
 | Команда `amp pr-check --files=<test-files-path-glob>`    | Запускает все проверки CircleCI локально и ограничивает тесты только файлами, предоставленными в качестве аргумента.                                                                                                                                  |
 | Команда `amp unit`                                        | Запускает модульные тесты в Chrome (не требует сборки библиотеки AMP).                                                                                                                                                                                     |
 | Команда `amp unit --local_changes`                        | Запускает модульные тесты, напрямую затронутые измененными файлами в локальной ветке, в Chrome.                                                                                                                                                            || Команда `amp integration`                                 | Запускает интеграционные тесты в Chrome после сборки несжатого runtime с версией `prod` конфигурации `AMP_CONFIG`.                                                                                                                                        |
 | Команда `amp integration --minified`                      | То же самое, что и выше, но сборка сжатого runtime.    |
 ```| Команда | Описание |
 | --- | --- |
 | `amp integration --config=<config>` | То же самое, но `config` может быть `prod` или `canary`.  (По умолчанию используется `prod`.  ) |
 | `amp integration --nobuild` | То же самое, но пропускает сборку runtime.  |
 | `amp [unit\|integration] --verbose` | Запускает тесты в Chrome с включенным логированием.  |
 | `amp [unit\|integration] --coverage` | Запускает тесты охвата кода.  После запуска отчет будет доступен по адресу test/coverage/index.html |
 | `amp [unit\|integration] --watch` | Наблюдает за изменениями в файлах и запускает соответствующие тесты в Chrome.  |
 | `amp [unit\|integration] --watch --verbose` | То же самое, что и `watch`, но с включенным логированием.  |
 | `amp [unit\|integration] --safari` | Запускает тесты в Safari.  |
 | `amp [unit\|integration] --firefox` | Запускает тесты в Firefox.  |```
 | Команда                                                        | Описание                                                                                                                                                                                                                                                 |
 | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | `amp [unit\|integration] --edge`                              | Запускает тесты в Edge.  |```markdown
| Команда | Описание |
| --- | --- |
| `amp [unit\|integration] --files=<test-files-path-glob>` | Запускает конкретные тестовые файлы. |
| `amp [unit\|integration] --testnames` | Выводит имя каждого запускаемого теста и печатает сводку в конце. |
| `amp serve` | Поднимает контент из корневой директории репозитория по адресу http://localhost:8000/. Примеры находятся по адресу http://localhost:8000/examples/. По умолчанию поднимает несжатые бинарники. |
| `amp serve --minified` | То же самое, что и `serve`, но поднимает сжатые бинарники. |
| `amp serve --cdn` | То же самое, что и `serve`, но поднимает бинарники CDN. |
| `amp serve --rtv <rtv_number>` | То же самое, что и `serve`, но поднимает бинарники с указанным 15-значным RTV. |
``````| `amp serve --esm`                                         | То же самое, что и `serve`, но подаёт модульные двоичные файлы ESM. Использует новые трансформации на основе TypeScript. _В разработке._                                                                                                                         |
  | `amp serve --quiet`                                       | То же самое, что и `serve`, но с отключённым логированием.                                                                                                                                                                                                                  |
  | `amp serve --port <port>`                                 | То же самое, что и `serve`, но использует номер порта, отличный от стандартного 8000.                                                                                                                                                                                  |
  | `amp storybook`                                           | Подаёт Storybooks для [изолированного тестирования компонентов.](#isolated-component-testing)                                                                                                                                                                       |
  | `amp storybook --storybook_env <storybook_env>`          | Подаёт Storybook для конкретной среды (`amp`, `preact`).                                                                                                                                                                                            |
  | `amp storybook --build [--storybook_env <storybook_env>]` | Строит один или несколько Storybooks в статическую директорию.                                                                                                                                                                                                   |
  | `amp check-types`                                         | Проверяет наличие ошибок, связанных с типированием Closure. Выполняется автоматически при пуше.   |
``````markdown
| Команда | Описание |
| --- | --- |
| `amp dep-check` | Выполняет проверку зависимостей для каждого модуля. Выполняется автоматически при пуше. |
| `amp presubmit` | Выполняет проверку файлов на наличие запрещенных и обязательных терминов. Запускается автоматически при отправке. |
| `amp validator` | Строит и проверяет AMP валидатор. Запускается автоматически при отправке. |
| `amp ava` | Выполняет тесты для задач и кода offline/node с использованием [ava](https://github.com/avajs/ava). |
| `amp todos:find-closed` | Находит `TODO` в коде для задач, которые были закрыты. |
| `amp visual-diff` | Выполняет все тесты визуального сравнения на безголовом экземпляре локального Chrome после сборки минифицированного runtime с версией `prod` конфигурации `AMP_CONFIG`. Требует установки переменной окружения `PERCY_TOKEN` или передачи задачи с помощью `--percy_token`. |
```| `amp visual-diff --config=<config>`                       | То же самое, но `config` может быть `prod` или `canary`. (По умолчанию `prod`).                                                                                                                                                            |
 | `amp visual-diff --nobuild`                               | То же самое, но пропускает сборку runtime.                                                                                                                                                                                                 |
 | `amp visual-diff --chrome_debug --webserver_debug`        | То же самое, но с дополнительным логированием.                                                                                                                                                                                             |
 ```Флаги отладки можно использовать независимо.
                                                                                                                                                                           |
  | `amp visual-diff --grep=<regular-expression-pattern>`     | То же самое, но выполняет только те тесты, чьи имена соответствуют шаблону регулярного выражения.                                                                                                                                                          |
  | `amp firebase`                                            | Создает папку `firebase` и копирует все файлы из `examples` и `test/manual` для развертывания в Firebase.                                                                                                                                       |
  | `amp firebase --file path/to/file`                        | То же самое, но копирует указанный файл в качестве `firebase/index.html`.                                                                                                                                                                              |
  | | `amp firebase --minified`                                 | То же самое, что и `amp firebase`, но использует минифицированные файлы вида `/dist/v0/amp-component-name.min.js` вместо неминифицированных файлов вида `/dist/v0/amp-component-name.max.js`.                                                                               |
  | `amp firebase --nobuild`                                  | То же самое, что и `amp firebase`, но пропускает сборку времени выполнения.                                                                                                                                                                                                  |
  | `amp e2e`                                                 | Запускает все тесты на уровне "end-to-end" в Chrome после сборки неминифицированного времени выполнения с версией `AMP_CONFIG` под названием `prod`.                                                                                                                                      |
  | `amp e2e --minified`                                      | То же самое, но собирает минифицированное время выполнения.                                                                                                                                                                                                        |
  | `amp e2e --config=<config>`                               | То же самое, но `config` может быть `prod` или `canary`. (По умолчанию используется `prod`. )                                                                                                                                                                           |
  | `amp e2e --nobuild`                                       | То же самое, но пропускает сборку времени выполнения.                                                                                                                                                                                                           | | `amp e2e --files=<test-files-path-glob>`                  | Запускает end-to-end тесты из указанных файлов на последней версии браузера Chrome.                                                                                                                                                                             |
  | `amp e2e --testnames`                                     | Выводит имя каждого теста, который запускается, и печатает сводку в конце.                                                                                                                                                                                  |
  | `amp e2e --engine=ENGINE`                                 | Запускает end-to-end тесты с указанным Web Driver движком. Допустимые значения: `puppeteer` и `selenium`.                                                                                                                                                   |
  | `amp e2e --headless`                                      | Запускает end-to-end тесты в безголовом режиме браузера.                                                                                                                                                                                                    |
  | `amp e2e --watch`                                         | Наблюдает за изменениями в тестовых файлах, запускает тесты при обнаружении изменений.                                                                                                                                                                       |
  | `amp check-sourcemaps`                                    | Проверяет правильность сгенерированных sourcemaps во время минификации.                                                                                                                                                                                       |
  | **Профессиональный совет:** Все вышеуказанные команды могут быть выполнены в режиме отладки с помощью `node --inspect`.   |Это позволит отладчику Chrome останавливаться на утверждениях `debugger;`, после чего можно будет проверять локальное состояние с помощью инструментов разработчика.Например, чтобы отладить `amp serve`, выполните следующую команду:

```sh
node --inspect $(which amp) serve

Ручное тестирование

Для ручного тестирования соберите AMP и запустите сервер Node.js, выполнив команду amp.

Режим Serve

Существует 5 режимов обслуживания:

  • Режим DEFAULT обслуживает незаминифицированный AMP. Используйте этот режим во время обычного развития, просто выполнив команду amp.
  • Режим MINIFIED обслуживает заминифицированный AMP. Это ближе к тому, что служится в продакшене на стабильном канале. Запустите этот режим, выполнив команду amp --minified.
  • Режим CDN обслуживает стабильные каналы бинарных файлов. Локальные изменения не обслуживаются в этом режиме. Запустите режим CDN, выполнив команду amp serve --cdn.
  • Режим RTV обслуживает пакет из заданного RTV номера (15-значное число). Например, 001907161745080. Запустите режим RTV, выполнив команду amp serve --rtv <rtv_number>.
  • Режим ESM обслуживает бинарные модули ESM. Сначала выполните команду amp dist --fortesting --esm, а затем запустите режим ESM, выполнив команду amp serve --esm. Этот режим новый и находится в активной разработке.

Чтобы переключиться на другой режим обслуживания во время выполнения, перейдите по адресу http://localhost:8000/serve_mode=MODE и установите MODE одним из следующих значений: default, compiled, cdn или <RTV_NUMBER>.

Примеры

Содержимое в директории examples доступно по адресу: http://localhost:8000/examples/### Прокси документа

AMP поставляется с локальным прокси для тестирования производственных документов AMP с локальной версией JS.

Для любого публичного документа AMP, например: http://output.jsbin.com/pegizoq/quiet,

Вы можете получить к нему доступ с помощью локальной версии JS, используя форму по адресу http://localhost:8000 или напрямую по адресу прокси:

http://localhost:8000/proxy/output.jsbin.com/pegizoq/quiet.

Примечание: Локальный прокси будет служить минифицированным или незаминифицированным JS в зависимости от текущего режима обслуживания. Когда режим обслуживания cdn, локальный прокси будет служить удалённым JS. При доступе к минифицированному JS убедитесь, что вы выполнили команду amp dist с флагом --fortesting, чтобы не удалять локальные пути. (Мы удаляем часть кода для уменьшения размера файла перед развертыванием в продакшен.) Если исходный ресурс использует HTTPS, URL будут выглядеть так: http://localhost:8000/proxy/s/output.jsbin.com/pegizoq/quiet.

A4A обёртка (/a4a/, /a4a-3p/)

Если вы работаете над рекламными объявлениями AMPHTML, вы можете использовать локальную A4A обёртку для тестирования локальных и производственных AMP документов с локальной версией JS.

A4A может быть запущена в одном из следующих двух режимов:

  1. Режим дружественного iframe: http://localhost:8000/a4a/...
  2. Режим iframe 3p: http://localhost:8000/a4a-3p/...Поддерживаются следующие формы:

При доступе к минифицированному JS убедитесь, что вы запускаете amp dist с флагом --fortesting, чтобы мы не удаляли пути к localhost. (Мы удаляем часть кода для уменьшения размера файла перед развертыванием в продакшн)

Если исходный ресурс использует HTTPS, URL будут выглядеть так: https://localhost:8000/a4a[-3p]/proxy/s/output.jsbin.com/pegizoq/quiet

Обратите внимание, что все документы предполагаются с "фиктивной" подписью. Таким образом, эта функциональность доступна только в режиме localDev.

Кроме того, можно предоставить следующие параметры запроса:

  • width - ширина элемента amp-ad (по умолчанию "300")
  • height - высота элемента amp-ad (по умолчанию "250")
  • offset - смещение для смещения элемента amp-ad вниз по странице (по умолчанию "0px"). Может использоваться для перемещения объявления за пределы области видимости, например, используя offset=150vh.

Обёртка In-a-box (/inabox/)

Если вы работаете над рекламными объявлениями AMP In-a-box, вы можете использовать локальную обёртку In-a-box для тестирования локальных и производственных AMP документов с локальной версией JS.

Поддерживаются следующие формы:

  • локальный документ: http://localhost:8000/inabox/examples/animations.amp.html

  • проксируемый документ с локальными источниками: http://localhost:8000/inabox/proxy/output.jsbin.com/pegizoq/quietКроме того, можно предоставить следующие параметры запроса:

  • width - ширина элемента iframe (по умолчанию "300")

  • height - высота элемента iframe (по умолчанию "250")

  • offset - смещение для смещения элемента iframe вниз по странице (по умолчанию "0px"). Может использоваться для перемещения объявления за пределы области видимости, например, используя offset=150vh.

Расширение для Chrome

Для тестирования документов на произвольных URL с вашей текущей локальной версией AMP runtime мы создали расширение для Chrome.

Визуальные тесты на различия

Кроме сборки AMP runtime и выполнения amp [unit|integration], автоматические тесты, выполняемые на CircleCI, включают набор визуальных тестов на различия, чтобы убедиться, что новый коммит в ветку main не приводит к непреднамеренным изменениям в том, как страницы отображаются. Тесты загружают несколько хорошо известных страниц в браузере и сравнивают результаты с известными хорошими версиями тех же страниц.

Используемый технологический стек включает:

  • Percy, сервис визуального регрессионного тестирования для веб-страниц
  • Puppeteer, драйвер, способный загружать веб-страницы для сравнения
  • Percy-Puppeteer, фреймворк, интегрирующий Puppeteer с Percy
  • Headless Chrome, браузер Chrome/Chromium в режиме без графического интерфейсаРепозиторий ampproject/amphtml на GitHub связан с проектом Percy с таким же названием. Вы увидите проверку под названием percy/amphtml в вашем PR. Если ваш PR приводит к визуальным различиям, нажав на ссылку details, вы увидите снимки экрана с выделенными различиями.

Неудачные тесты

Когда выполнение тестов завершается неудачей из-за наличия визуальных различий, нажмите ссылку details рядом с percy/amphtml в вашем PR и изучите результаты. По умолчанию Percy выделяет изменения между снимками экрана красным цветом. Нажав на новый снимок экрана, вы увидите его в чистом виде. Если различия указывают на проблему, вероятно, связанную с вашим PR, вы можете попробовать выполнить визуальные тесты локально для отладки (см. раздел ниже). Однако, если вы уверены, что проблема не связана с вашим PR, вы можете нажать зелёную кнопку Approve на Percy для одобрения снимков экрана и разблокировки вашего PR для слияния.### Нестабильные тесты

Если тест Percy не проходит и вы хотите запустить повторный запуск, сделать это можно не изнутри Percy. Вместо этого, из вашего PR на GitHub, нажмите на ссылку details рядом с CircleCI PR Check и затем нажмите на Visual Diff Tests, чтобы загрузить запуск CircleCI для вашего PR. На странице задания нажмите кнопку Перезапустить рабочий процесс с начала, чтобы перезапустить только это задание, что сгенерирует свежий визуальный дифф-билд на Percy.

Как выполняются тестыВизуальные тесты различий определены в файле visual-tests.jsonc, см. файл для конфигураций каждого теста. При выполнении, запуск тестов визуальных различий выполняет следующие действия для каждого тестового случая:

  • Переходит на определенную страницу с помощью безголового браузера Chrome
  • Ждет завершения загрузки страницы, как путем проверки бездействующих сетевых соединений, так и отсутствия анимаций загрузки
  • Если определено, ждет появления/исчезновения соответствующих CSS-селекторов на странице
  • Если определено, ждет произвольное количество времени (например, для компонентов, имеющих задержку времени)
  • Если определено, выполняет любой пользовательский код теста взаимодействия
  • Загружает снимок экрана DOM страницы (преобразованный в строку HTML) в сервис Percy

Когда все снимки завершают загрузку, Percy обрабатывает визуальные различия и отчеты возвращаются в GitHub в качестве статуса запроса на слияние. Percy рендерит снимки в собственных браузерах и делает скриншот. Если новый скриншот отличается от ранее утвержденного скриншота, вы получите визуальное выделение мест, где лежит это различие.Percy по умолчанию не запускает JavaScript, поэтому тот же снимок DOM будет использоваться для отображения мобильной и настольной версий страницы. Это означает, что если ваша страница выглядит по-разному между этими двумя типами устройств, она должна быть способна сделать это только с помощью CSS.### Добавление и изменение визуальных тестов различий

См. Добавление и изменение визуальных тестов различий.

Изолированные тесты компонентов

Чтобы ускорить разработку и тестирование компонентов, рекомендуется использовать Storybook. Это позволяет вам писать "истории", которые являются рендерируемыми тестовыми сценариями.

Истории могут показывать контролы конфигурации для ручного тестирования параметров компонентов. Они также предоставляют инструменты для проверки доступности, тестирования макетов, изменяющихся в зависимости от размера области видимости, и других функций.

📖 Документация Storybook: Что такое история?

Запуск Storybook

Вы можете запустить preact Storybook, выполнив:

amp storybook

Вы можете запустить конкретную среду, предоставив --storybook_env:

  • preact

    amp storybook --storybook_env=preact
  • react

    amp storybook --storybook_env=react

    Запуск react окружения требует наличие пакетов компонентов. Убедитесь, что они присутствуют в директориях extensions/**/dist до запуска, выполнив команду amp build --extensions=... для всех компонентов Bento.

  • amp

    amp storybook --storybook_env=amp

    Запуск amp окружения также запускает задачу сборки и запуска, которая обычно запускается с помощью команды amp. Это предоставляет дополнительный сервер на localhost:8000.### Писание тестовых сценариев

Тестовые сценарии (stories) расположены внутри директории компонента. Расширение имени файла определяет, в каком окружении будут запущены сценарии:

  • preact Stories заканчиваются на .js:

    extensions/amp-example/0.1/storybook/Basic.js

  • react Stories используют те же файлы, что и preact.

  • amp Stories заканчиваются на .amp.js:

    extensions/amp-example/0.1/storybook/Basic.amp.js

Подробнее о Писании Stories в официальной документации Storybook. Убедитесь, что вы также следуете нашим собственным Рекомендациям по стилю

Тестирование на устройствах

Тестирование с помощью ngrok

Быстрее всего отлаживать с помощью локальной сборки (amp + http://localhost:8000/). В Chrome вы можете использовать DevTools порт-форвардинг. Однако, iOS Safari не предоставляет аналогичной опции. Вместо этого вы можете использовать ngrok. Просто скачайте бинарник ngrok для вашей платформы и запустите его следующим образом:

ngrok http 8000

После запуска ngrok выведет URL для http и https. Например, http://73774d8c.ngrok.io/ и https://73774d8c.ngrok.io/. Эти URL можно использовать для отладки на iOS и других устройствах.

Тестирование с помощью FirebaseДля развертывания и тестирования локальных сборок AMP на Firebase, установите firebase и инициализируйте firebase в этой директории* (директория firebase может быть сгенерирована командой amp firebase).```sh

npm install -g firebase-tools firebase login firebase init amp firebase firebase deploy ```- При инициализации Firebase в директории через firebase init, убедитесь, что выберите следующие опции при запросе:

  • "Какие функции Firebase CLI вы хотите настроить для этой папки?" выберите Hosting: Настройка и развертывание сайтов Firebase Hosting.
  • "Что вы хотите использовать в качестве публичной директории?" введите public.
  • "Выберите по умолчанию проект Firebase для этой директории:" выберите имя вашего проекта, если он уже создан, в противном случае выберите [не настраивать новый проект] и добавьте его позже.
    • Примечание: Если вы еще не создали проект, вам придется создать его через консоль Firebase после инициализации и перед развертыванием. Как только вы создадите проект, вы можете сделать его активным в вашем CLI с помощью firebase use your-project-name или дать ему псевдоним, выбрав проект после выполнения firebase use --add.
  • "Настроить как одностраничное приложение (переписать все URL на /index.html)?" выберите n.amp firebase сгенерирует папку firebase и скопирует все файлы из dist, examples и test/manual. Он перепишет все URL в скопированных файлах, чтобы они указывали на локальные версии AMP (то есть те, которые скопированы из dist в firebase/dist). При инициализации Firebase вы должны установить папку firebase как публичную директорию для firebase. Таким образом, firebase deploy просто скопирует и развернет содержимое сгенерированной папки firebase. Например, ваш файл firebase.json может выглядеть следующим образом:```json { "hosting": { "public": "firebase", "ignore": ["firebase.json", "/.*", "/node_modules/**"] } }

Если вы только тестируете один файл, вы можете использовать `amp firebase --file=path/to/my/file.amp.html`, чтобы избежать копирования всего `test/manual` и `examples`. Он скопирует указанный файл в `firebase/index.html`, что упрощает отладку.

После развертывания вы сможете получить доступ к вашему проекту по его URL-адресу хостинга `https://your-project-name.firebaseapp.com`.

Кроме того, вы можете создать несколько проектов и переключаться между ними в CLI с помощью `firebase use your-project-name`.

#### Тестирование рекламы

Тестирование рекламы в развернутых демонстрациях требует разрешения URL 3p. Вы можете сделать это, добавив ваш намеченный URL-адрес развертывания как переменную окружения `AMP_TESTING_HOST` и используя флаг `fortesting`. Например:

```sh
export AMP_TESTING_HOST="my-project.firebaseapp.com"
amp firebase --fortesting
firebase deploy

Это запишет "my-project.firebaseapp.com" как третий сторонний URL в соответствующие атрибуты в AMP_CONFIG, который предварительно добавляется к файлам amp.js и integration.js в папке firebase. Если вас интересует, как это делается, вы можете посмотреть build-system/tasks/firebase.js.

Тестирование на всех этапах

Вы можете запускать и создавать локальные тесты на всех этапах во время разработки. В настоящее время тесты выполняются только в Chrome, но поддержка дополнительных браузеров находится в разработке. Эти тесты еще не добавлены в наш CI-билд, но они будут добавлены скоро.Запустите все тесты с помощью:

amp e2e

Задача запустит amp build и затем amp serve перед выполнением тестов. Чтобы пропустить сборку времени выполнения, используйте --nobuild.

Консультация по документации по тестированию на всех этапах поможет вам узнать, как создавать свои собственные тесты на всех этапах.

Тестирование производительности узловых инструментов сборки

Вы можете создавать диаграммы пламени для любого узлового процесса, используемого системой сборки, с помощью 0x.

Вот пример для amp dist:

npx 0x -o node_modules/.bin/amp dist

Важно отметить, что 0x автоматически создает диаграмму пламени и папку для обслуживания локально в репозитории, пожалуйста, не добавляйте их в PRs!

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-accelerated-mobile-pages.git
git@api.gitlife.ru:oschina-mirror/mirrors-accelerated-mobile-pages.git
oschina-mirror
mirrors-accelerated-mobile-pages
mirrors-accelerated-mobile-pages
main