{"id":13582787,"url":"https://github.com/wttech/aet","last_synced_at":"2025-04-09T17:24:49.760Z","repository":{"id":39961716,"uuid":"60241390","full_name":"wttech/aet","owner":"wttech","description":"AET - a system that detects visual changes on web sites and performs basic page health checks","archived":false,"fork":false,"pushed_at":"2024-01-15T15:13:21.000Z","size":39872,"stargazers_count":139,"open_issues_count":113,"forks_count":48,"subscribers_count":47,"default_branch":"master","last_synced_at":"2024-04-12T15:05:37.500Z","etag":null,"topics":["accessibility","accessibility-checker","aet","automation","change-detection","hacktoberfest","layout-testing","page-comparison","pattern-comparison","qa","quality-assurance","regression-automation","regression-testing","regression-tests","selenium","selenium-java","testing","visual","visual-testing","w3c-validator"],"latest_commit_sha":null,"homepage":"https://wttech.blog/open-source/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wttech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-06-02T07:18:24.000Z","updated_at":"2024-04-15T05:35:32.707Z","dependencies_parsed_at":"2024-01-06T12:03:50.417Z","dependency_job_id":"29be5c18-107e-4c21-a691-c03d8cf6095c","html_url":"https://github.com/wttech/aet","commit_stats":{"total_commits":1873,"total_committers":77,"mean_commits":"24.324675324675326","dds":0.8152696209289909,"last_synced_commit":"81fbf30040f0924307a0def8e5cef37b1c1e5f7b"},"previous_names":["cognifide/aet"],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Faet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Faet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Faet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Faet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wttech","download_url":"https://codeload.github.com/wttech/aet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248075686,"owners_count":21043633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","accessibility-checker","aet","automation","change-detection","hacktoberfest","layout-testing","page-comparison","pattern-comparison","qa","quality-assurance","regression-automation","regression-testing","regression-tests","selenium","selenium-java","testing","visual","visual-testing","w3c-validator"],"created_at":"2024-08-01T15:03:01.629Z","updated_at":"2025-04-09T17:24:49.738Z","avatar_url":"https://github.com/wttech.png","language":"Java","readme":"\u003cdiv align=\"center\"\u003e\n\n  \u003ch1\u003e\u003ccode\u003eAET\u003c/code\u003e\u003c/h1\u003e\n\n  \u003ch3\u003e\n    \u003cstrong\u003eDetect visual changes with ease\u003c/strong\u003e\n  \u003c/h3\u003e\n\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/github/workflow/status/wttech/aet/ci?style=for-the-badge\" alt=\"CI status badge\" /\u003e\n    \u003ca href=\"https://codecov.io/gh/wttech/aet\"\u003e\n      \u003cimg src=\"https://img.shields.io/codecov/c/github/wttech/aet?style=for-the-badge\" alt=\"Code coverage\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/wttech/aet\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge\" alt=\"License\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://gitter.im/aet-tool/Lobby\"\u003e\n      \u003cimg src=\"https://img.shields.io/gitter/room/wttech/aet?style=for-the-badge\" alt=\"Gitter\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003ch3\u003e\n    \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"#documentation\"\u003eDocumentation\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n  \u003c/h3\u003e\n\n\u003csub\u003e\u003ch4\u003eBuilt with ❤️\u003c/h4\u003e\u003c/sub\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/wttech/aet/raw/master/misc/img/white-vml-square-small.png\" alt=\"VML\" width=\"150\"/\u003e\n\u003c/p\u003e\n\n# \u003cp id=\"about\"\u003eAET\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/wttech/aet/master/misc/img/aet-logo-blue.png\" width=\"400\"\n         alt=\"AET Logo\"/\u003e\n\u003c/p\u003e\n\nAET is a system that detects visual changes on web sites and performs basic page health checks (like w3c\ncompliance, accessibility, HTTP status codes, JS Error checks and others).\nAET is designed as a flexible system that can be adapted and tailored to the regression requirements of a given project.\nThe tool has been developed to aid front end client side layout regression testing of websites or portfolios,\nin essence assessing the impact or change of a website from one snapshot to the next.\n\n## What's the philosophy behind AET?\nAET helps testers to ensure that a change in one part of the software has not introduced new defects in other parts of the software.\n\n#### AET is suited for\n* monitoring regression across large digital web platforms,\n* managing visual changes across digital platform after changing common component (e.g. footer),\n* regression tests at the end of an Hourly/Daily/Weekly/Per Sprint Completion,\n* as part of an upgrade or migration process of a platform.\n* client side performance tests of pages using [Lighthouse extension](hhttps://github.com/malaskowski/aet-lighthouse-extension)\n\n#### A typical scenario of use\n1. The AET user (Developer or QA) baselines a set of components or pages with URLs as an input to the tool.\n2. The CMS user changes the page component or content.\n3. The ‘current baseline’ is used to compare with the ‘new version’ and the change is assessed for one of the 3 possibilities:\n   * There are no changes - no involvement required.\n   * There is a change but the user accepts it, which means she/he re-baselines.\n   * There is a change and the user does not accept it, so she/he has to fix it.\n4. AET produces a report.\n\n#### AET is NOT about\n* functional testing\n* cross-browser testing\n* usability testing\n* security or server-side performance\n\n## What's inside?\n*AET* uses several tools and frameworks that are used to check page quality in the following areas:\n\n* Full page **visual comparison** using Google Chrome browser to render page and [Selenium](https://www.selenium.dev/documentation/en/webdriver) to capture screenshots inc.:\n   * Hiding Page Items located by xpath or css selector,\n   * Changing screen resolution (width/height setup),\n* Page **sources** comparison.\n* Page source **W3C compliance** with [nu.validator](https://validator.w3.org/nu).\n* **JS errors** with [JSErrorCollector](https://github.com/mguillem/JSErrorCollector).\n* **HTTP status codes** with [BrowserMob Proxy](https://bmp.lightbody.net).\n* Page **accessibility** with [HTML_CodeSniffer](http://squizlabs.github.io/HTML_CodeSniffer).\n* Page **cookies** comparison and modification.\n* and many others ...\n\n## \u003cp id=\"installation\"\u003eHow to start\u003c/p\u003e\nTo setup a fully functional AET instance use one of the following:\n- [AET cookbook](https://github.com/wttech/aet-cookbook), you may run local instance using [AET Vagrant](https://github.com/wttech/aet//wiki/BasicSetup#set-up-vagrant).\n- [AET Docker images](https://github.com/malaskowski/aet-docker), you may run local instance as follows:\n    - follow the guide [here](https://github.com/malaskowski/aet-docker#developer-environment)\n    - assume `AET_ROOT` mentioned in the guide above to be equal `../aet-docker`\n    - this way, from the root directory of **this** project, you can run `./gradlew` or `./gradlew deployLocal` to automatically \n      install all core bundles, core configs and core features\n- [AET Helm chart](https://github.com/malaskowski/aet-helm) when you have Kubernetes cluster.\n\nFor more details on how to run AET tests, see [AET in 10 minutes](https://github.com/wttech/aet//wiki/AETIn10Minutes) guide.\n\n## AET architecture\nThe AET System consists of 7 units:\n\n- Client (AET Maven Plugin)\n- Runner cluster\n- Worker cluster\n- JMS Server\n- Database\n- REST API\n- Reports web application\n\n![aet-architecture](misc/img/aet-architecture.png)\n\nThanks to using AET Maven Plugin as a Client application, AET is easy to integrate with CI Tools like Jenkins or Bamboo.\n\n## \u003cp id=\"license\"\u003eLicense\u003c/p\u003e\n**AET** is licensed under [Apache License, Version 2.0 (the \"License\")](https://www.apache.org/licenses/LICENSE-2.0.txt).\n\n\n## Bugs and Feedback\n\nFor bugs, questions and discussions please use [Github Issues](https://github.com/wttech/aet/issues).\nPlease notice we use the [ZenHub](https://www.zenhub.com) extension to manage issues.\n\n## \u003cp id=\"documentation\"\u003eDocumentation\u003c/p\u003e\n* [AET Wiki](https://github.com/wttech/aet//wiki)\n\n## Contact and Commercial Support\n\nIf you have any questions or require technical support please contact us at [aet@wundermanthompson.com](mailto:aet@wundermanthompson.com).\n[Gitter Chat](https://gitter.im/aet-tool/Lobby) is a way for users to chat with the AET community. Feel free to leave a message, even if we’re not around, we will definitely respond to you when available.\n","funding_links":[],"categories":["Java","测试"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwttech%2Faet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwttech%2Faet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwttech%2Faet/lists"}