Używam Selenium do automatyzacji testowania funkcjonalności stron internetowych. Ważne jest, abyśmy porównując piksel po pikselu wprowadzili nowy kod, więc używamy Selenium do robienia zrzutów ekranu i porównywania łańcuchów kodowanych base64, aby sprawdzić, czy coś się zmieniło.Rozproszone porównanie zrzutów z Selenium
Zauważamy, że w praktyce trudno uzyskać pełną spójność pikseli, szczególnie w przypadku obrazów. Chciałbym, aby pomniejsze artefakty związane z rozmyciem/renderingiem były liczone jako "pass" zamiast "fail", więc zastanawiam się, czy istnieje sposób na porównanie rozmyte, aby nasze testy były trochę mniej kruche.
Myślałem o tym, że może przyjrzeć się odległości Levenshteina między ciągami base64 jako punktu wyjścia, ale tak naprawdę nie wiem, czy to dobre podejście, czy też, jakie powinny być tolerancje, które odróżniają "coś przeniesionego na stronę "z" artefaktu renderującego ". Wszelkie pomysły/podejścia?
To brzmi naprawdę fajnie! Do tej pory ImageMagick pracował dla mnie, więc prawdopodobnie będę trzymał się zasady, jeśli nie robię tego od zera, ale gdybym robił to od zera, zdecydowanie sprawdziłbym perceptualdiff na zewnątrz. – josh
Silne porozumienie w sprawie niezmieniania czegoś, co działa - potrzeby każdego projektu są nieco inne. Naprawdę szukam aktualizacji igły, aby umożliwić ogólne wsparcie zewnętrznych różnic, dzięki czemu mogę użyć ImageMagick/GraphicsMagick w niektórych przypadkach. –