poniedziałek, marca 31, 2008

(Grinder: Part 4) Jak to odpalić

Musimy mieć uruchomioną konsolę (stworzyliśmy sobie plik console.sh) oraz agenta (agent.sh). W konsoli wybieramy 'Dystrybucja -> Dystrybucja plików' oraz 'Akcje -> Uruchom procesy'.

Testowy WebService zrobiony w NetBeansie i odpalony w osadzonym Glasshfish-u (albo jak kto woli: Sun Java Application Server):



50 wątków Grindera dobijało się do usługi jednocześnie:



Użyliśmy biblioteki XStream i na strumień output przekazywaliśmy stringi zawierające XML zserializowanych obiektów, możemy zatem zajrzeć do logów i obejrzeć odpowiedzi WebService'u.



Agenta można uruchomić na innej maszynie niż konsola, wtedy należy uruchamiać go w ten sposób: java -Dgrinder.consoleHost=192.168.7.22 -cp $GRINDERPATH/lib/grinder.jar net.grinder.Grinder.

(Grinder: Part 3) Jak pisać testy pod Grindera

Najwygodniej jest napisać test najpierw w Javie.



Sprawdzony działający kod portujemy do Jythona i sprawdzamy czy działa.



Test w Jythonie przerabiamy na skrypt grinderowy. Zasada jest taka: obiekt, którego wydajność chcemy zmierzyć opakowujemy w test np.
t = Test(1, "Test numer 1").wrap(obiekt_z_metodą_action)
t.action()

(Grinder: Part 2) Jak przygotować narzędzia do testów WS

Potrzebujemy Grindera, środowiska PyDev (wtyczka do Eclipsa, dodawania poprzez Help -> Software Updates -> Find and install -> (Search for new features) -> New Remote Site: http://pydev.sourceforge.net/updates/) oraz Axis-a (nasz klient WebService'u wyeksportowany do jar-a wymaga bibliotek Axis-a).

Rozpakowujemy Grindera, dla ustalenia uwagi, do /home/user/grinder, a następnie w tymże katalogu tworzymy dwa skrypty odpalające konsolę i agenta.



Po odpaleniu console.sh wybieramy z menu Dystrybucja pozycję Ustaw Katalog i podajemy katalog /home/user/grinder. Będąc w zakładce Skrypty wybieramy folder /home/user/grinder/examples i zaznaczamy znajdujący się w środku plik grinder.properties, a następnie klikamy na menu Dystrybucja -> Select properties. Będąc w pliku grinder.properties możemy ustawić classpath dla maszyny wirtualnej Javy: powinniśmy dodać tam ścieżkę do jar-a od klienta WebService'u, jar-y z dystrybucji Axis-a, oraz xstream.jar (wszystkie te rzeczy najwygodniej wrzucić do /home/user/grinder/lib/).

Przykładowy CLASSPATH: /home/user/grinder/lib/wsdl4j-1.5.1.jar:/home/user/grinder/lib/jaxrpc.jar:/home/user/grinder/lib/commons-logging-1.0.4.jar:/home/user/grinder/lib/commons-discovery-0.2.jar:/home/user/grinder/lib/axis.jar:/home/user/grinder/lib/xstream-1.3.jar:/home/user/grinder/lib/ws1cli.jar

niedziela, marca 30, 2008

(Grinder: Part 1) Jak testować wydajność WebService'ów

Najpierw potrzebujemy Eclipse'a z zainstalowanym pakietem Web Tools Platform. Tworzymy nowy projekt javowy. Importujemy WSDLe opisujące WebService'y, które mamy przetestować. Dodajemy serwer JavaEE (File -> New -> Other -> Basic -> J2EE Preview).
Teraz możemy wygenerować javowego klienta WebService'u.





Dalej pozostaje nam już tylko parę linijek kodu - stworzenie ServiceLocator-a, pobranie portu i wywołanie usługi. Fajnie by było moć obejrzeć wynik w postaci XML-a. Do tego możemy wykorzystać biblotekę XStream hostowaną na CodeHausie.



A na koniec częsci pierwszej pakujemy całego klienta do jar-a (File->Export->Java->Jar).

czwartek, marca 27, 2008

Photoshop Express, czyli edycja zdjęć online



Adobe stworzyło webowy interfejs do edycji obrazków. Jak na właściciela Macromedii przystało aplikacja wykonana jest we Flashu, zapewne pod spodem jest Flex na javowym serwerze aplikacyjnym.
Photoshop Express wymaga raczej porządnej karty graficznej...

A tak przy okazji: Opera 9.5 beta przechodzi test Acid3 w 100%, natomiast Safari 3.1 beta
jest prawodpodobnie najszybszą przeglądarką (w sensie operacji JavaScript/DOM).

wtorek, marca 18, 2008

Solaris działa na AMD AHCI!

Hello,

This is Ying from Sun, and I'm working on the ahci driver.

As to the bug you filed on AMD SB600 ahci chipset, I think it's not
supposed to happen again on 82+ build since I removed the PxTFD.STS.BSY
check after COMINIT was received during port reset when JMicron ahci
chipset support was introduced in build 82.

Therefore, could you please have a try 82+ build and check whether the
bug is fix?

PS. I have a ASUS M2A-VM mother board, and build 85 works well on its
SB600 ahci chipset.

Thanks in advance!
- ying -

niedziela, marca 09, 2008

Co poeta miał na myśli?

#include stdio.h
#include stdlib.h
#include time.h

Jak włączyć święta w Kontakcie

wtorek, marca 04, 2008

Tusk już sobie poszedł?