Selenium headless test

A selenium egy zseniális eszköz, én személy szerint nem csak tesztelésre, hanem folyamat automatizálásra is egyre többet használom. Néha egyszerűen x nélkül szeretném használni, hogy csinálja meg amit szeretnék, a többi dolog nem is érdekel.

Ehhez az alábbi dolgok szükségesek:

  • firefox (apt-get install firefox)
  • java (apt-get install default-jre)
  • selenium, és selenium RC (lásd később)
  • egy két csomag, hogy fusson a firefox x nélkül (apt-get -y install xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic libstdc++5 xserver-xorg-core xauth dbus-x11)

Első lépésként bármilyen gépen el kell készíteni magát a teszt esetet. Ehhez a firefox alá fel kell telepíteni a selenium plugint, amiben a record-al felvehetjük amit csinálunk, majd menthetjük. Fontos, hogy nekünk nem csak egy teszt esetre (test case), hanem egy test suite-ra is szükségünk lesz. Tehát először mentsük a tesztesetet (File – Save Test Case) majd a hozzá tartozó Test Sutie-ot is (File – Save Test Suite).

Ezek után irány a linux, ahol az alábbi script-el tudjuk elrúgni a tesztet:

#!/bin/sh
Xvfb -fp /usr/share/fonts/X11/misc/ :22 -screen 0 1024x768x16 2>&1 &
export DISPLAY=:22
java -jar selenium-server-standalone-2.42.2.jar -htmlSuite "*firefox" "http://192.168.2.1" "rrestart_suite.html" "results.html"

A fenti példában:

  • “http://192.168.2.1” – az oldal címe, amint a tesztesetet le fogja futtatni
  • “rrestart_suite.html” – a test suite neve
  • “results.html” – ebbe a fájlba kerülnek naplózásra futási eredmények

Egyébként a seleniumot meg lehet hajtani java programból is, ami egy sokkal érdekesebb téma(ez által lehet pl. excel adatforrás alapú tömeges tesztelést végezni). Ha lesz időm, talán arról is készül majd egy rövid cikk.

OSX telepítés virtualbox alá

Ha az ember olyan programot ír, ami több platformon is működik, akkor jó eséllyel hibákat is fog kapni ezen platformokról. Kedvenc hobbi projektem miatt égetően szükségem lett egy osx-re, hogy egy két dolgot meg tudjak nézni. Már egy ideje virtualbox-ban használom a linuxot, gondoltam próbát teszek az OS X-el is, hátha.

Találtam egy cikket a lifehacker-en, ami alapján úgy tűnt, hogy van esély működésre bírni egy OS X-et a virtuális gépben… Ezen felbuzdulva le is töltöttem egy jónak tűnő OS X telepítőt, aminek a leírásában szerepelt a hacked, meg a virtualbox szó… 🙂

Első próbálkozásom hatalmas kernel pánikok, fagyások jellemezték… Itt kétségbeestem, és próbálkoztam mindenfélével, pl. az iBoot-al amivel el is indult a telepítő, hogy a végén jól szétfagyjon.

Aztán ráakadtam egy blog bejegyzésre, ami alapján úgy tűnt, hogy életre lehet kelteni a mac-at iBoot nélkül is, csak el kell hitetni az OS X-el, hogy amin fut, az egy mac. Ezt azért egy virtuális gépen nem is olyan nehéz megtenni, a 6. pont a lényeg.

<ExtraDataItem name="VBoxInternal2/SmcDeviceKey"
   value="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"/>
<ExtraDataItem name="VBoxInternal2/EfiGopMode" value="2"/>

Valamint még a <Firmware type=”EFI”/> átírtam  <Firmware type=”EFI64″/> -re.

Szerencsére a virtualbox konfigurációs fájl egy xml (csak a kiterjesztése .vbox), szóval nem is variáltam, beleírtam mindent, és láss csodát:

Screenshot 2014-05-26 13.53.41

 

 

Virtuális gépen picit lassúak az animációk, azokat érdemes kikapcsolni. Erre található ehhez egy jó leírás, ami alapján én az alábbi dolgokat kapcsoltam ki:

sudo defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO
sudo defaults write com.apple.dock expose-animation-duration -int 0
sudo defaults write com.apple.dock springboard-show-duration -int 0
sudo defaults write com.apple.dock springboard-hide-duration -int 0

És már csak a hálózati kapcsolat volt hátra… Ehhez a default gateway-t kellett megtudni:

route -n get default

ami a gazda gép ip címe a natolt hálózaton. Ehhez csatlakozva már elérhetőek a windows megosztások:

Finder -> Go -> Connect to server: smb://10.0.2.2

Öröm boldogság…

 

Ui: XCode 5-höz OS X 10.8.4 kell, nekem pedig 10.8.0 van, nem akartam szenvedni az upgrade-el, maradtam a 4.6.3 verziónál, de ez az apróság már csak a letöltés, és a telepítés után derül ki…

A a java fejlesztéshez szükséges eszközök terén is volt egy kis kavar, de ezen már meg se lepődök, viszont ennek kapcsán elég sokat futott az osx (böngészés, futtatás, konfigurálgatás), és eddig hibátlanul működik.

Rar fájlok kitömörítése

find . -name "*.rar" -exec unrar x '{}' \;

Let me explain what this does. 
"find ." - will find files within the current directory and any subdirectories
"-name "*.rar" - will only find *.rar files
"-exec " - will perform an external command on the results found by the "find" command. 
"unrar x" - is the command to extract the rar archives
"'{}'" - tells find to append the found result to the end of the exec'd command.
"\;" - signifies the end of the exec'd command.  forrás

Az a bizonyos í betű…

Eddig is hallottam a mechanikus billentyűzetekről, gondolkoztam is rajta, hogy veszek, mert a c64-en és régi ibm billentyűzeteken imádtam gépelni… A 444 cikk után végleg megszületett az elhatározás, szükségem van egy normális billentyűzetre…

Meg is rendeltem a nekem tetsző visszafogott dizájnú, Mx Brown mikrokapcsolókkal szerelt Keycool 108II billentyűzetemet ügyesen.

A billentyűzet igényes kidolgozású, a kábele könnyen cserélhető (usb – micro usb), adtak hozzá ps/2 átalakítót (billentyűzetnél az lehet jobb mint az usb), szóval elégedett voltam vele. Egyetlen problémát az jelentette, hogy a kiosztása angol. Nem is kérdés, hogy ezt egy picit szokni kell (pl. a ű helyett előszeretettel tudok entert ütni), de sokkal nagyobb problémát jelentett, hogy nem lehet vele í betűt írni. Erre a windowsban egyébként van megoldás alapból, mégpedig az altgr az alt-gr helyén lévő jobb alt és az i betű lenyomásával elő lehet csalogatni az Í betűt… Igen, a nagy Í betűt, ugyanis nekem bármit is csináltam csak ezt volt hajlandó írni…

A megoldást végül a régen sokat használt Autohotkey jelentette, az alábbi makróval:

!i::
Send í
return

Ennek eredménye

  • bal alt+i = í
  • jobb alt+i = Í

Azt hiszem rendelnem kellene egy normális billentyűzetet munkába is 🙂

A script 64-bit unicode exeben, letolthető innen: hunkey

Windows 8 remote desktop

Réges régen, még windows xp alatt a sikerült csinálni egy jó Remote Desktopot. Egyszerűen jobb volt mint az akkori alternatívák, vitt át hangot, képet, nyomtatókat, eszközöket, vágólapot, bejelentkezés nélkül is működött, stb. Szerettük.

Ezt a bravúrt windows 7-ben már nem sikerült megismételni, történt ugyanis, hogy még gigabites hálózaton is akadozik a Remote Desktop frissítése… Ezen Remote Desktop 8-ra történő frissítéssel, lehet segíteni, de az eredmény nem lesz tökéletes. Szerencsére többek között ezt a hibát is orvosolták a windows 8-ban, de nem a Microsoftról beszélnénk, ha a dolgok egyértelműek lennének (pl. a felhasználó név az felhasználó név, a típus az pedig típus).

Ha valaki viszont először próbál csatlakozni windows 8-as gépre, jó eséllyel a felhasználónév, és a jelszó megadása után az alábbi képernyővel fog találkozni:

snap082

 

A probléma, hogy arra már nem telt a kedves fejlesztőknek, hogy a felhasználói adatbevitelt rendesen megcsinálják, mert akkor 3 részből kellene, hogy álljon:

  • Felhasználó név
  • Jelszó
  • Felhasználó típusa (local, online, esetleg custom?)

Ez utóbbi ugyanis elég fontos, nem mindegy, hogy online microsoft accounttal, vagy csak a lokális gépen lévő felhasználónkkal szeretnénk bejelentkezni. Az interneten a legtöbb helyen azt a megoldást javasolják, hogy mentsük el a kapcsolatot rdp fájlba, és abba írjuk bele az alábbi sort:

enablecredsspsupport:i:0

Ezt azt eredményezi, hogy az mstsc nem akar majd felhasználónevet, és jelszót küldeni, hanem már azt is a remote sessionben kell beírnunk. Nem rossz, de a korrekt megoldás az, hogy a felhasználó típusát jelöljük a felhasználónév mezőben.

Lokális felhasználók esetén:

WORKGROUP\username

Online microsoft accountok esetén:

MicrosoftAccount\username

 

És láss csodát már működik is…

 

Webhosting én így szeretlek

A kezdetek kezdetén, még üzemeltettem otthon szervereket, de aztán a kihívások megfogyatkoztak, a webhostingot pedig havi 1000 huf körül megoldották erre szakosodott cégek. Ennyiből otthonra egy fix ip-címet is nehezen lehet kihozni, az egyéb költségekről (sávszélesség, áramfogyasztás, üzemeltetést, stb.) már nem is beszélve.

Évekig nem is volt ezzel probléma, fizettem, hostoltak, és csupa öröm boldogság. A héten jött egy levél, ami tudomásomra hozta, hogy lejár az előfizetésem, megújítani nem lehet, de vannak szuper új csomagok, amik korszerűbbek, jobbak, válasszak azok közül, mert az nekem jó lesz.

Néztem is nagy lelkesen az új csomagokat, de valójában engem csak a legolcsóbb érdekelt. Sajnálatos módon ez is többe került hónapokra leosztva mint az előző, de hát egy kis bújtatott áremelés sose rossz, csak az időzítéssel van némi probléma.

A világ ugyanis változik, mint ahogy a webhosting is, de én arra számítottam, hogy csökkenni fog az ár, és nőni a szolgáltatás színvonala. Egyre profibbak a szoftverek, egyre olcsóbbak a hardverek, lassan már bárki tud hosting céget összepattintani kész komponensekből (pl. cPanel és társai), nem is beszélve olyan, a hosting cégek számára elég kellemetlen dolgokról, mint a cloud storage (dropbox, google drive, skydrive), amin a felhasználók csak úgy megoszthatnak ismerőseikkel, vagy a világgal gyakorlatilag bármit…

De sebaj, az ilyen problémákon még még túlemelkedik az ember. Viszont azon már kicsit nehezeben, hogy nekem kell migrálnom az oldalakat az egyik csomagból a másikba. Egyszerűen nem értem. Amennyiben egy szolgáltatásért fizetek, akkor miért nem oldják meg? Nem egyszerűbb készíteni valakinek egy migráló scriptet, sokkal jobban megéri előfizetők ezreit ezzel vegzálni? Főleg ilyen áron? Jó, végül is nem nagy meló, ha ért hozzá az ember, akkor 4-5 site 1 óra alatt megvan. De érzésre nem mindenki látja ezt a folyamatot ilyen egyszerűnek. Sebaj, ez Magyarország, ha mi üzemeltetnénk a gmailt, biztos kiküldenénk felhasználók millióinak is gondolkodás nélkül, hogy most van már egy új gmail, csak másold át a leveleidet a régiből az újba légyszi (jó példa erre még a vatera szánalmas fejlesztőbrigádja, akik jelenleg két külön kereskedő oldalt üzemeltetnek két külön adatbázissal…).

Amikor elkezdtem volna a migrációt, azonnal beleütköztem egy másik problémába: csak egyetlen domaint lehetett a csoda új csomagban rögzíteni, többet nem (a régibe 10 virtualhost volt engedve). Jeleztem, hogy itt valami probléma lesz, mert hiányzik egy menüpont. Közölték, nincs itt semmi probléma, mert a kisebb csomagot fizettem elő, és ott nem lehet virtualhostokat konfigurálni… De vegyem meg az egyel nagyobb csomagot (havi 2k-nál járunk) akkor aztán majd minden lesz jól (minden = max. 5 virtualhost).

Azt hiszem ez volt az a pont, amikor eltört bennem valami. Azt megértem, ha valaki pénzt kér, mondjuk a tárhelyért, memóriahasználatért, processzorért… Bármiért, amiről el tudom hinni, hogy tényleg költség és kerül valamibe. Még talán azt is, hogy picit többet kér, pedig valójában csökkennie kellene az árnak… De azt, hogy egy olyan dolgot, ami nem kerül semmibe (mint pl. egy virtualhost) pénzért áruljon… Na ne már…

Gyorsan körbenéztem a világban, és nagyjából minden nagyobb, minőségi (nem magyar) szolgáltató havi 3.5 usd (igen, ez kevesebb mint 1000 huf) költségért kínál ilyesmit, és folyamatosan egymásra licitálnak olyan dolgokkal, mint korlátlan tárhely, korlátlan virtualhost, korlátlan email, ingyen backup, 7/24 rendelkezésre állás, one click wordpress install, stb…

Elkezdett érdekelni a dolog, új információim birtokában bepróbálkoztam még pár magyar helyen, hátha találok végre egy magyar szolgáltatót, aki legalább arra vette a fáradságot, hogy a google-ben rákeressen, hogy néz ki az a piac jelenleg, amiből ő részesedni kívánna, vagy van fogalma arról, mit hívnak szolgáltatásnak, amit ő (elviekben) nyújtani próbálna nekem, hogy boldog legyek, és ezért fizessek.

Nem tagadom a végére picit elfogyott a türelmem… Pár helyen megpróbáltam kifejteni, hogy szerintem el vannak tévedve, és körül kellene nézniük a világban… Elvégre nem olyan bonyolult dolog ez, van az az internet nevű csoda, csak azt kellene használni… Ezek a beszélgetések általában a lehető legrosszabb irányba indultak el. SENKI nem mondta azt, hogy megvizsgálják a kérdést, még csak el sem gondolkoztak rajta. Viszont elég sokan válaszolták, hogy hallottak már ilyet, rosszul tudom, az csak marketing, az a korlátlan nem úgy korlátlan, az nem az összes költség, és majd meglátom, stb.

Lehet nem véletlen, hogy a wordpress.org-on a hosting témájú cikkben egyetlen magyar szolgáltatót sem ajánlanak.

De hát ennek már a fele sem volt tréfa, ha valóban ilyen rossz a helyzet, és külföldön minden szolgáltató hazudik, akkor ezt már meg akartam tapasztalni a saját bőrömön. Igen, csalódni akartam, hogy sírva jöhessek vissza a magyar szolgáltatókhoz, akik már a honfoglaláskor is tudták, hogy mi az a true webhosting.

Szedtem hát virtuális sátorfámat, és elköltöztem külföldre. Igen, egy amerikai cégnek fizetem a pénzt, amiből amerikai srácok fognak amerikai hamborgert venni… De most legalább úgy érzem, figyelnek arra amit mondok, fontos nekik, hogy elégedett legyek. De az igazat megvallva nem sok mindent tudok mondani. Fizetés után 5 perccel már jött a levél, ip cím, felhasználó név, jelszó. Meglepő módon minden működött elsőre. Alapértelmezett a 7/24 support (kipróbáltam, kérdeztem, nagyon kedvesek voltak, amerikai idő szerint reggel 3-kor, 5 percen belül válaszoltak), van ssh hozzáférés a szerverhez (!), van automatikus backup (ingyen, és csak úgy), és ezen felül minden, amit így hirtelen el tudtam volna képzelni (pedig a képzelőerőmmel általában nincs gond). Mindezt kevesebb mint havi 1e forintért, értelmetlen korlátozások nélkül (igen, akármennyi tárhely, akármennyi emailcím, és meglepő módon, akármennyi virtualhost…). A hozzáállásuk is kicsit más a dolog pénzügyi részéhez, 30 napig le se vonják a pénzt, bármikor megszüntethetem az előfizetést, de a szerződés ezután is bármikor felmondható, időarányosan visszaadják a pénzt.

Eközben Magyarországon a hűségszerződés alap, 5 webes felületen kellett bejelentkeznem, 5 különböző azonosítóval. 6 éven keresztül arra képtelenek voltak, hogy megváltoztathassam az email címemet, és ne arra a címre menjenek a levelek, amit több mint 5 éve nem használok. Aztán árat emelnek, és erősen korlátozzák a szolgáltatást… Elvégre, ha 6 évig le tudtak húzni, akkor benne van, hogy lehet még 6 újabb jó évük…

Ebben a dologban nem is igazán az bánt, hogy egy olyan területen, ahol elég csak okosnak lenni, minimális beruházással iszonyú innovációkat lehet véghezvinni, ilyen szinten állunk Mi, Magyarok. Az bánt, hogy nem is akarunk jobbak lenni.

De mint mondtam, változik a világ, és a „magyar színvonalat”képviselő cégek csődbe fognak menni. Az emberek egyre inkább tudnak angolul, egyre inkább nem riadnak vissza, ha külföldről kell beszerezniük valamit, és aztán majd lehet skandálni a tüntetéseken, hogy „Magyarországon már nincs semmi, mert a konzervgyárakat, meg a hostingcégeket is bezárták…”. Amihez én csak annyit fűznék hozzá, hogy „szerencsére”