Jak zbudować tanią automatyczną weryfikację? Przykłady

Jak zbudować tanią automatyczną weryfikację? Przykłady
Pytacie nas o koncept taniej automatyzacji Radka Smilgina, będącej alternatywą dla automatyzacji scenariuszowej po GUI. Oto przykłady narzędzi i bibliotek, które warto wypróbować.

Samą ideę taniej automatyzacji weryfikacji opisaliśmy TUTAJ.

Jest to tańsze, szybsze i bardziej niezawodne rozwiązanie od automatyzacji po GUI opartej na scenariuszach użytkowania. Polega na użyciu gotowych bibliotek i narzędzi lub samodzielnego napisanie prostych funkcji weryfikujących poprawność działania oprogramowania. Taki zbiór narzędzi można odpalać niezależnie podczas wykonywania testów lub wpiąć w mechanizm CI/CD.

Jednym z mechanizmów „bieda automatyzacji” jest wykorzystanie do testów regresji porównywania zmian na poszczególnych ekranach aplikacji. Reguła jest dość prosta. Jeśli zakładamy, że wprowadzane przez nas zmiany nie powinny spowodować modyfikacji strony, to należy zrobić screen PRZED zmianą kodową oraz PO, by zweryfikować, czy nic się nie zmieniło.

Komercyjnym narzędziem z przyzwoitą ceną i niezależnością od platformy językowej jest pagescreen: https://pagescreen.io

Daje on również możliwość monitorowania zmian oraz poprawności URL-i.

Poniżej narzędzia dla dotNET-a oraz Node.js

Przykładowe automatyczne weryfikatory dla dotNET-a

Sprawdzenie kodów odpowiedzi stron (np. 200 czy 404)

Takie narzędzie można napisać samemu w C# przy pomocy:

  • dotnet add package HtmlAgilityPack
  • dotnet add package System.Net.Http

Jak to działa?

  1. httpClient pobiera zawartość strony
  2. HtmlAgilityPack (https://html-agility-pack.net/) parsuje HTML i pobiera linki (https://medium.com/coderes/crawler-data-from-a-website-with-html-agility-pack-net-c-d1630b52dcab)
  3. httpClient pobiera stronę dla wcześniej pobranych linków, a następnie sprawdza jej dostępność za pomocą metody "IsSuccessStatusCode"

Inne tutoriale tworzenia crawler'a:

I jeszcze jedna duża biblioteka: https://github.com/Infocaster/UrlTracker

Można również skorzystać z komercyjnego rozwiązania: https://www.httpwatch.com/

Sprawdzenie SEO

SEO Checker https://github.com/mjebrahimi/DNZ.SEOChecker

Sprawdzenie prostej wydajności strony przez analizę czasów odpowiedzi na pojedyncze zapytania

Wystarczy wykorzystać klasę Stopwatch w C#.

Przykład: https://stackoverflow.com/a/787654

Przykładowe automatyczne weryfikatory dla Node.js.

Sprawdzenie kodów odpowiedzi stron (np. 200 czy 404)

npm - link-checker https://www.npmjs.com/package/link-checker

Sprawdzenie SEO

npm – seo-checker https://www.npmjs.com/package/seo-analyzer

Sprawdzenie prostej wydajności strony przez analizę czasów odpowiedzi na pojedyncze zapytania

npm - performance-time-tracker https://www.npmjs.com/package/performance-time-tracker

Dla każdej innej platformy językowej znajdziecie czasami pojedyncze rozwiązań open source i zawsze znajdziecie dziesiątki komercyjnych narzędzi. Jak pokazaliśmy czasami implementacja takie funkcji samodzielnie również jest możliwa. Czasami może się okazać, że jest to najlepsze i jednocześnie najbardziej efektywne rozwiązanie.
 

To powinno Cię zainteresować