Web uygulamaları için bulut ve konteyner tabanlı test otomasyon hizmeti
Cloud and container based test automation service for web applications
Yazar: MEHMET EMİN KÜÇÜKER
Danışman: DOÇ. DR. KÜRŞAT AYAN
Sakarya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar ve Bilişim Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2018
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Gelişen teknolojiler ile birlikte web uygulamalarının çalışma yükü, sunucu tarafını hafifletmek ve daha hızlı işlem gerçekleştirebilmek adına istemci tarafına kaymaktadır. İstemci tarafında kullanılabilir olan platform-tarayıcı çeşitliliği ve bunların web uygulamalarını çalıştırırken farklı davranışlar sergilemesi sebebiyle geliştirilen uygulamaların değişik ortamlarda işlevsel testlerinin gerçekleştirilmesi gerekmektedir. Bu nedenle çapraz tarayıcı uyumluluk testleri önem arz etmektedir. Bulut tabanlı yaklaşım, farklı ortamların esnek bir şekilde oluşturulması yoluyla bu testlerin uygulanması ve özellikle otomasyonu sürecinde verimliliği artırmaktadır.

Bu çalışmanın arkasındaki temel fikir, çapraz tarayıcı testinin bulut bilişimin imkanları kullanılarak açık kaynak kodlu çözümler yardımıyla otomatize bir şekilde gerçekleştirileceği özgün bir tasarım modeli sunmaktır. İşlevsel, ekran görüntüsü ve etkileşimli test olmak üzere üç farklı test tipinin sunulduğu modelde, işlevsel ve ekran görüntüsü testlerinin Selenium test aracı kullanılarak gerçekleştirilmesi tasarlanmıştır. Tasarımın uygulanması sırasında Windows ve Linux tabanlı bulut makineleri kullanılmış olup Linux makineleri üzerinde Docker teknolojisinden faydalanılarak daha esnek ve çevik bir yapı elde edilmesi planlanmıştır. Windows işletim sisteminin kısıtlarından dolayı bu test ortamları için direkt olarak OpenStack üzerinde oluşturulan bulut makineleri kullanılmıştır. Testlerin bulut makineleri ve Docker konteynerleri üzerinde dağıtık ve paralel olarak gerçekleştirilebilmesi Selenium Grid aracı ve TestNG çatısı kullanılarak sağlanmıştır.

Bu çalışmada sunulan tasarımın göstergeleri doğrultusunda, her alanda yaygınlaşan bulut bilişim teknolojisi ve Docker sanallaştırma tekniklerinin sağladığı imkanların, test otomasyonu ve tarayıcı testi alanlarına uygulanması ile bu testlerin klasik yöntemlerin aksine daha etkili ve hızlı bir biçimde gerçekleştirilmesi sağlanabilecektir.

Abstract:
With the developing technologies, the working load of web applications is shifting to the client side. Due to the variety of platforms-browsers available for the clients and different behavior of these platforms-browsers, it is important to perform the functional test in various environments for developed web applications. For this reason, cross-browser compatibility tests are crucial. The cloud-based approach improves productivity in the process of implementing and automate these tests through the flexible creation of different environments.

The idea behind this study is to present a unique model with open source solutions for cross-browser testing using cloud computing approach. In this model, three different test types were presented: Functional test, screenshot test and interactive test. Functional and screenshot tests were designed to be performed using Selenium test tool. Windows and Linux based cloud machines have been used for realization of this design model and thanks to the use of Docker on Linux machines, a much more flexible structure has been achieved. Due to the constraints of Windows operating systems, the cloud machines created on OpenStack were used directly for Windows-based test environments. Parallel and distributed tests were performed on cloud machines and Docker containers using Selenium Grid and TestNG framework.

With the findings of design model presented in this study, the opportunities provided by cloud computing technology and Docker virtualization techniques can be applied to test automation and cross-browser testing areas, and thanks to that, these tests can be performed more effectively and faster than classical methods.