TeamCity okazało się jednym z najbardziej użytecznych narzędzi, których użyłem w ostatnim czasie. Pomogło mi to w ciągłym wdrażaniu witryn w środowiskach inscenizacyjnych i produkcyjnych, umożliwiając testowanie penetracji bezpieczeństwa, uruchamianie automatycznych testów akceptacyjnych ze specyfikacją SpecFlow i wiele innych. Naprawdę miałem nadzieję, że uda mi się przetestować możliwości SEO nowo wdrożonej witryny. Zwykle po wdrożeniu witryny otwieram konsolę IIS i uruchamiam analizę witryny pod adresem URL za pomocą Zestaw narzędzi SEO ale myślałem, że musi istnieć sposób na uruchomienie tego z TeamCity.
W ciągu minionego tygodnia pisałem jakiś prototypowy kod, który pozwoli mi użyć biblioteki narzędziowej SEO dll do stworzenia analizy pozycji. Okazało się to skuteczne, a ponieważ byłem w stanie uruchomić analizę z kodu, byłem w stanie uruchomić aplikację z TeamCity.
kod tej aplikacji jest w bardzo wczesnym stadium, ponieważ został napisany za pomocą przykładowego kodu w MSDN. Będzie ewoluować z czasem i udostępnię to. Plany aplikacji mają obsługiwać różne części analizy, które mają zostać dodane do raportu za pomocą parametrów konfiguracyjnych. Ponieważ jestem pewien, że ten kod może być niewłaściwie wykorzystany, dodałem małą wersję Thread.Sleep, dzięki czemu nie można jej użyć do ataku na witrynę. Nie akceptuję odpowiedzialności za niewłaściwe wykorzystanie kodu.
Konfigurowanie TeamCity do uruchamiania aplikacji
Zaloguj się do TeamCity jako administrator i przejdź do ekranu administracyjnego.
Kliknij „Utwórz projekt” i wprowadź szczegóły projektu:
Następnie chcemy utworzyć konfigurację kompilacji. Kliknij „Utwórz konfigurację kompilacji”:
Dodaj kilka ogólnych informacji - nazwę, opis i format numeru kompilacji. Najważniejszą rzeczą do odnotowania jest obszar tekstu artefaktów. Dodano do niego SEOReport.html. Jest to raport tworzony przez aplikację przeszukiwacza. Dodajemy to do artefaktów, abyśmy mogli dodać wyniki do karty raportu.
Zostaniemy poproszeni o wprowadzenie niektórych ustawień VCS. Musiałem trochę włamać się do rzeczy. Technicznie nie muszę sprawdzać tej aplikacji poza kontrolą wersji. Wprowadzam ścieżkę do pliku aplikacji w ścieżce realizacji transakcji w następujący sposób:
Krok budowania to kolejna rzecz do dodania. W krokach budowania kliknij przycisk Dodaj krok budowy i wybierz polecenie Linia poleceń z menu rozwijanego typu biegacza. Tutaj właśnie nazywamy aplikację:
Jak widać, pozostawiamy pusty katalog roboczy, ponieważ określiliśmy katalog już na etapie VCS. Następnie możemy wywołać plik .exe z pliku wykonywalnego polecenia. Parametry są tam, gdzie robi się interesująco. To jest, że przechodzimy w witrynie do skanowania - jeśli witryna nie jest określona, zostanie zgłoszony wyjątek aplikacji i kompilacja się nie powiedzie.
Po zakończeniu instalacji i przekazaniu witryny uruchom kompilację. Po pomyślnym zbudowaniu strona szczegółów budowania pokaże (nowo skonfigurowaną) kartę SEO Crawler Report:
Jeśli nie wiesz, jak dodać kartę raportu niestandardowego, omówię to w osobnym poście. Ale po udanej kompilacji i kliknięciu tej karty otrzymujemy bardzo prosty raport w następujący sposób:
Ten raport zawiera tylko podsumowanie adresów URL, linków i naruszeń, a także kody statusu witryny i uszkodzone linki. Ale ponieważ ta aplikacja zapewnia pełne skanowanie, które może wykonać zestaw narzędzi SEO, możemy sprawić, by aplikacja wyświetlała więcej szczegółów. W nadchodzących wersjach kodu pozwolę sobie na konfigurowanie, które sekcje można dodać do raportu.
Jak mogę wyświetlić pełny raport?
Jak wspomniałem, aplikacja robota analizuje całą witrynę. Ta sama analiza, którą wykonują usługi IIS. W folderze głównym aplikacji znajduje się folder raportów IIS SEO. Ten folder będzie zawierał wszystkie raporty skanowania. Więc jeśli naprawdę chcesz, możesz wziąć folder skanowania i upuścić go w znanej lokalizacji IIS (dla mnie jest to MyDocuments / IIS SEO Reports), a IIS może wyświetlić pełny raport tak, jak wcześniej.
Kolejna wskazówka dla TeamCity. Wiem, że jest to plik wykonywalny, który można wywołać z dowolnego skryptu kompilacji, ale jest to dla mnie bardzo łatwe dzięki kompilatorowi wbudowanemu i akceptacji parametrów.
Jak mogę wyświetlić pełny raport?