Strony

sobota, 18 sierpnia 2012

Rekursywny grep na ubogich systemach ;-)

Często korzystasz z grep -R? Trafiłeś na system, który nie udostępnia tego przełącznika (np. systemy korzystające z busybox'a)?

Nie musisz pisać swojego skryptu do rekursywnego odwiedzania katalogów w FS. Wystarczy wbudowany find i nasz zubożony grep. ;-)
Jeśli Twój system nie dysponuje także poleceniem xargs, wykorzystaj przełącznik exec zaimplementowany w find:
W miejsce {} wstawiana jest nazwa znalezionego przez find pliku, polecenie zaś należy zakończyć średnikiem poprzedzonym backslash'em (aby zapewnić, że bash nie zinterpretuje tego jako separatora poleceń).

Przy okazji: natknąłem się ostatnio na narzędzie ack, które ponoć sprawuje się lepiej niż grep. Korzystacie?

czwartek, 16 sierpnia 2012

Jak szybko przetestować prosty WebService? (SOAP 1.1 i cURL)

Dziś krótko, ale na temat. Załóżmy, że:
  • zaimplementowałeś prosty WebService,
  • WS działa w oparciu o protokół SOAP. 

Zamierzasz skrupulatnie przetestować swoje dzieło. Chcesz:
  • aby testowanie odbywało się w relatywnie prosty sposób,
  • pozwalało dodatkowo wykonać load-testing, 
  • nie wymagało napisania linijki kodu,
  • było możliwe do uruchomienia w prostym, standardowym środowisku.

Jest na to prosty sposób.

Korzystając z narzędzia cURL i spreparowanych wcześniej wiadomości zgodnych z SOAP, jesteś w stanie testować WS z poziomu konsoli (Linux lub cygwin). Aby to zrobić, należy wykonać następujące polecenie:
Gdzie:
  • http://ws-targeturl.com/ws/ to adres docelowy WS,
  • --user user:password (opcjonalne) przesyła do serwera nazwę użytkownika i hasło (tylko dla HTTP Basic)
We wskazanym pliku soap_example.xml musi znaleźć się docelowa zawartość komunikatu SOAP wysyłanego do WebService'u, przykład poniżej:
Tak przygotowany test można wykonać zarówno na jednej jak i wielu maszynach wielokrotnie (w tym także równolegle), co może nieźle pozwolić ocenić czas odpowiedzi serwera poprzez symulację obciążenia.