Casperjs Phantomjs ve Slimerjs kullanılarak geliştirilmiş bir test kütüphanesi. Bu tarz kütüphaneler ile çok haşır neşir olmadığım için ne olduğu hakkında daha detaylı bir açıklama maalesef yapamıyorum. Ama kullanımın kolaylığı hoşuma gittiği için bir yazı paylaşmak istedim.
Casperjs ne yapar?
- Casperjs ile test senaryoları oluşturarak belirlediğimiz süreler içerisinde bu testlerin uygulanmasını sağlayabiliyoruz. Örneğin geliştirmekte olduğumuz bir kullanıcı sistemi olduğunu varsayalım. Tarayıcı üzerinde test ederken input a kullanıcı adı ve parolayı girmek, submit butonuna basmak yada çıkış yapmak gibi tüm işlemleri komut olarak yazıyor ve test edebiliyoruz.
- Test esnasında istediğimiz aşamada ekran görüntüsü alabiliyoruz.
Kurulum ve kullanım
Casperjs kurulumunu bağımlılıkları ile uğraşmadan docker ile imajını çekerek kullanabiliyoruz. Docker sisteminizde kurulu değilse sitesinden http://www.docker.com/ sisteminize göre kurulum bilgilerini edinebilirsiniz. https://hub.docker.com/r/zopanix/casperjs/ adresinden imajı çekelim.
docker pull zopanix/casperjs
Yükleme başarılı şekilde tamamlandığında docker images komutunu yazarak casperjs imajını ve yüklü diğer imajları görebilirsiniz.
Aşağıdaki komut ile casperjs i çalıştırıyoruz.
docker run -v /home/ahmet:/data zopanix/casperjs
-v parametresi ile oluşturduğumuz konteyner ile paylaşılacak dizini belirliyoruz. İlki mevcut sistemin dizi ikincisi ise konteynerın dizini. Çalıştırılacak dosya mevcut sistemde hangi dizinde ise /home/ahmet yerine o dizin gelmeli.
var casper = requre('casper').create()
casper.start('http://www.google.com', function() {
this.echo(this.getTitle())
})
casper.run()
Yukarıdaki kodu google.js olarak kaydedip çalıştıralım.
docker run -v /home/ahmet:/data zopanix/casperjs google.js
Çıktı olarak Google yazısını alacağız. İlk olarak casper modülünü çağırdık start fonksiyonu ile http://www.google.com adresini çağırdık. Sonrasında this.echo fonksiyonu ile çağırılan sitenin title bilgisini konsola yazdırdık.
Yukarıdaki komut için bir alias belirleyerek casperjs i onunla çalıştırabiliriz.
casperjs() {
sudo docker run -v $PWD/data zopanix/casperjs $1
}
alias=casperjs
sudo docker run -v $PWD/data zopanix/casperjs $1
}
alias=casperjs
Belirli bir adresin farklı tarayıcı boyutlarında ekran görüntüsünü kaydetmeyi sağlayan güzel bir örneğe şuradan ulaşabilirsiniz.
Yukarıdaki örnek kod ile blogun farklı ekran ölçülerinde çekilmiş fotoğrafları;
Casperjs in daha etkili kullanım örnekleri için http://casperjs.readthedocs.io/en/latest/ adresini ziyaret edebilir ve diğer birçok sitede örnek kodlar bulabilirsiniz. Sonraki yazıda görüşmek üzere.
Hiç yorum yok:
Yorum Gönder